1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
New features in 2.10
* The net.burst now uses BURST, END_OF_BURST and EOB_ACK. The BURST
message is more compact and packs everything of one channel in one
line. The result is that channel synchronisation takes place
instantly (joins, deops of net.riders, new modes, ban correction).
After you saw the splitted users (re)join, you still can't talk to
them until all of the net.burst has been passed through the
connecting link back and forwards; this to get rid of excessive
long periods of lag due to a net.junction of a slow link.
Net.riders are not anymore allowed to net.ride an opless channel.
This was decided because most 'nukes' are done in order to be able
to net.ride on an opless channel. The additional advantage is that
net.riders can be de-opped before they even see anyone join.
Therefore, independend of lag, a net.rider will always first be
de-opped, and only then see the returning people join.
Very important: everything is resychrononized now, including bans!
* Nicknames (and servernames) are now "numeric" (base 64). This has
major advantages concerning the desyncs and should solve all
desync problems that are related to nick changes. It also reduces
the size of net.bursts by 30% ! (especially because the
servernames are now 1 character). There is currently only one
desync possibility left that we know off, the numeric nicks solve
like 7. Several Ghost bugs have been fixed too as compared to 2.9
thanks to the use of numeric nicks; these ghosts have been the
cause for a great number of 'HACK' desyncs.
* Umode +s works as usual, but also allows to set a mask to
personalize the ammount and sort of server notices that is
received.
* The code is prepared to receive tokenized server-server messages:
1 or 2 characters per command. This again will reduces bandwidth
usage.
* A new command was added: /WALLCHOPS #channel ..., or /NOTICE
@#channel ... which sends a message to all channel ops. This
message should be used instead of the `onotice' scripts used now
because the latter could trigger the anti mass message mechanism
(see below). This is the reason that this new command is available
for everyone, also non chan-ops.
* Mass messaging and inviting is now throttled after 20 different
targets. Where a target is a channel or a user, not a nick.
Throttling doesn't prohibbit talking to any of the previous 20
targets. Replacement of one any of the 20 targets is allowed every
120 seconds.
* /INVITE got a facelift. Among others, you will be able to invite
someone through a ban and give him a +v, as alternative for
'anti-bans'.
* All remote commands that would allow to flood the server-server
links with huge queries have been disabled for normal users. To
support helpers that are not IRC Opers, several additions have
been made to still allow doing certain queries - without needing
to flood - like using a user@host mask to lookup (remote) K-lines
and the introduction of a seperate remote MOTD.
* Overlapping bans now remove the redundant ones. For client
synchronisation, the redundant ones are still sent as -b modes to
the clients (but do not go over server-server links).
* The sychronization of the TS clocks should now be fixed.
* Connections from clone botters that use several different servers
are also spotted by the server now (doesn't have to be local
anymore). Fast connecting clones are throttled on IP-number
although the server notices DO show the hostname too now. Problems
with getting throttled accidently may be caused by the fact that
your client retries to connect too fast, use a wait period of 20
seconds at least. Note that you are allowed to immedeately retry
when the connection was refused by the server for a temporal
reason, like "No more connections".
* In order to know better when a net.junction is done, two new
messages are added: 'End of net.burst' and '<server> acknowledged
end of net.burst'. This way the Opers can exactly see when a
net.junction starts, but also when it is finished.
* In an attempt to further reduce the desyncs, a new server-server
message CREATE is being used to let someone join and give him the
initial ops. The advantage of this is that JOIN and MODE +o plus
TimeStamp are now in one message and can be handled correctly.
* Compiling the server with -DGODMODE in the CFLAGS adds the code
that I always used for debugging, it gives a lot of extra
information to the +s user, like the actual server-server messages
being transmitted. Unmissable for development. (Of course, NEVER
use this on a production net. It's both extremely bandwidth
consuming as well as spying on ALL messages, secrets etc).
* The code got an enormous facelift, all warnings are removed when
compiling with -Wall -pedantic. Function prototypes are now used
everywhere. The headers are organized more professional (still as
messy as the source files are though). The code was run through
`indent', so its one programming style through-out the code now.
Run
_____________________________________________________________
Questions and comments about this page should go to the maintainter:
Carlo Wood (Run @ IRC) [1]<carlo@runaway.xs4all.nl> .
References
1. mailto:carlo@runaway.xs4all.nl
|