Commits


Don't send MODE changes when origin is a server and mask is already known.


Fixed handling of already existent entries in invite and ban lists: the attempt to add an already existent entry is no error, it must be propagated across servers (but not added to the list!).


Changed the reply of the MODE command to match the syntax of the original ircd exactly: the unnecessary but missing ":" before the last parameter has been added.


Fixed and enhanced penalty handling; changed internal time resoluiton of the server to one second. Code cleanup.


The server didn't validate wheather the "target" client of a channel user mode change is a valid channel member or not.


- Non-members of a channel could crash the server when trying to change its modes. Fixed.


- MODE returns the key and user limit for channel members correctly now.


- The server sets a correct away message now when receiving a "MODE +a".


- replaced some calls to sprintf() with snprintf() -- more secure :-)


- replaced a lot of strcpy() calls with strlcpy() which is more secure.


- replaced a lot of strcat() calls with strlcat() which is more secure.


- fixed user mode propagation over server-links (IRC operator, away, ...)


- Implemented channel modes k (key) and l (user limit).


- fixed broken handling of modes received from other servers.


- fixed some parsing bugs. - better logging.


- new (and much more flexible!) MODE parser


- removed Conf_MaxPChannels and reverted to old behavior.


- Conf_MaxPChannels is considered properly in channel mode changes now.


- new file header format (in english); - new file ident semantics.


- Parser auf Befehlstabelle umgestellt.


- Channel-Mode "P" ("persistent") kann nur noch von IRC-Ops gesetzt werden.


- Parameter von List_Add{Invited|Banned}() erweitert.


- auch Nicht-ChanOps konnten Ban- und Invite-Lists veraendern.


- Bans/Invites: andere Server wurden nicht informiert. - neue Funktion Send_ListChange().


- Invite- und Ban-Lists (MODE +I, MODE +b) implementiert.


- neue Konfigurationsoption "OperCanUseMode" (Sektion "Global"): ist sie aktiv, koennen IRC-Operatoren immer Channel-Modes setzen.


- Hmpf. "Verfruehtes" CVS-Update einiger Source-Files zurueckgenommen ...


- Bei einem JOIN in einen persistenten Channel werden nun evtl. zu setzende User-Modes korrekt in den Channel gemeldet.


- nicht unterstuetzte Channel-Modes entfernt.


- Anpassungen an pre-ANSI-Compiler, - Includes aufgeraumt: Header includieren keine anderen mehr.


- persistente und vordefinierte Channels implementiert.


- alle Client_GetFromID() durch Client_Search() ersetzt. - neuer Mode "s": Server Messages.


- externe portab-Header werden nicht mehr benoetigt/benutzt, dadurch einige Aenderungen an diversen Source-Dateien und Headern. - Dateien enthalten keine CVS-History mehr.


- der AWAY-Mode wurde nicht ueber mehrere Server-Links weitergegeben.


- Modul aus irc.c bzw. irc.h ausgegliedert.