Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / ChangeLog.10
1 #
2 # ChangeLog for ircu2.10.10
3 #
4 #
5 # Insert new changes at beginning of the change list.
6 #
7 --------------------------- Released 2.10.10.pl11.(release)
8 * Fixed G-lined (reason), thanks to dfx -- Isomer
9 * Added reason to the "G-lined (reason)" quit messages. -- Isomer
10 * Removed 'for nick[1.2.3.4]' from quit messages, they're redundant
11   and make hub hiding more reliable --Isomer
12 * ircd/s_user.c (hunt_server): add 'No such server' message back 
13   --Isomer
14 * ircd/s_bsd.c: remove ALWAYSFLUSH - the problem wasn't ircu's fault 
15   -- Isomer
16 * ircd/m_names.c (m_names): don't add a space if the user's a
17   zombie; fixes an overrun where we generate a huge number of spaces
18   in the names reply without length-checking them properly -- Kev
19 * added 'ALWAYSFLUSH', if you thought the furgeson flusher was bad...
20   --Isomer
21 * Fixed /USERHOST again.  Horribly embarrased.  Thanks again Liandrin 
22   --Isomer
23 * Added extra field to /stats Y showing how many people are in that class.
24   Information was previously available via /trace, however tended to flood
25   you off if you weren't on a good connection.  Requested by Mr_RIP
26   -- Isomer
27 * Fixed 'BADCHAN' resetting itself to 'Y', reported by Gator --Isomer
28 --------------------------- Released 2.10.10.pl10
29 * Released 2.10.10.pl10
30 * Backported /names optimisation from 2.10.11.
31   '/names 0' now returns verbose listing, '/names' simply returns
32   ENDOFNAMES. Disallow harmfull /names usage. --Gte
33 * Fixed ERR_NOSUCHNICK bug in userhost, thanks to Liandrin --Isomer
34 * Conceal more bugs in IPcheck --Isomer
35 * Add 'POST' as a unregistered command to disconnect people abusing web
36   proxies --Isomer.
37 * Conceal bugs in IPcheck --Isomer
38 * Fix for changing the wrong define --Isomer
39 * Fix for the easter buggy. --Isomer
40 * Fix for rpong --Run
41 * Fix for other IPcheck bug, thanks BLMet. --Bleep
42 * Fix for IPcheck bug, rewrite IPcheck from scratch (mostly),
43   add changes for new code to s_user.c, ircd.c --Bleep
44 * Shorten connection timeout for auth queries to 60 seconds
45   If connection is from localhost use the server alias for the
46   client host. --Bleep
47 * Fix for ident bug --Isomer
48 * Fix for rping/rpong --Gte
49 * Add m_pong to parser handler --Bleep
50 * Fix for EXTENDED_NUMERICS bug doh!!! --Bleep
51 * Fix for Max Undernet Server bug --Bleep
52 * Fix for PRIVMSG<->NOTICE translation from hubs --Bleep
53 * Fix for Bogus protocol strings for P9 servers --Bleep
54 * Hookup UPING code again, cleanups --Bleep
55 * Convert numerics back to mask and shift extended numerics
56   follow same mechanism --Bleep
57 * Fixed bogus errno return on Solaris --Bleep
58 * Fixed core on RPING bug, tokenized RPING --Bleep
59 * Remove add_local_domain entirely, unused --Bleep
60 * Merge u2_10_10_beta06 create branch u2_10_10_beta07 --Bleep
61 * Remove size_t from socket calls, audit usage of size_t
62   values. --Bleep
63 * Fix for OSF1, RES_NOALIASES not defined there. --Bleep
64 * Don't bother doing hostname lookup or setting me.sockhost
65   since we never want to display it there is really no reason
66   to have the info. --Bleep
67 * Bugfix broken N:line check in chkconf --Maniac
68 * Bugfix, fix clients occasionally getting stuck in IPcheck
69   code. Add note to members in client struct that aren't used
70   for any remote client code, didn't want to actually move them
71   this close to release (paranoia) --Bleep
72 * A few little cleanups in check_pings, removed yet another
73   address display. --Bleep
74 * Bugfix, autoconnects displaying server IP address to opers.
75   --Bleep
76 * Remove names from /stats p, since its always the server
77   name from the M:line anyhow, (redundant information)
78   --Bleep
79 * Unborked throttling. --Bleep
80 * Fix two stupid bugs, related to IP mismatch kills. --Bleep
81 * Clean up configuration, make it a bit easier for admins to
82   turn off asserts and heap checking code. Moved host name dns
83   query for listener virtual host ports to dead code and use
84   me.name for the listener name (no sense in looking up the name
85   if we don't want to display it). Change direct bump of unknowns
86   in s_bsd.c to Count_newunknowns(UserStats) for consistency.
87   --Bleep
88 * Added option to kill any connecting client with a forward and
89   reverse DNS mismatch. Fixed bug in s_auth that that caused
90   incorrect counts for unknown clients. Replaced missing server
91   notice for SNO_IPMISMATCH. --Bleep
92 * Added a few more little name tweaks, no sense in looking up
93   the hostname in the conf if no one knows it. --Bleep
94 * Moved to beta archive, bumped patchlevel, fixed message for
95   lost C:line in s_conf.c (I don't think I've ever seen this happen)
96   --Bleep
97 * Finished host hiding changes, it should not be possible for any
98   online user to discover the real hostname or IP address of any
99   connected or unconnected server listed in the configuration. This
100   applies to opers and regular users. The name in the M:line is the
101   name used for connecting and all informational messages. --Bleep
102 * Removed code in dbuf.c that flushes the dbufs if the server runs out
103   it looks like a fully loaded server may not be able to handle a net
104   break without shedding a few clients. --Bleep
105 * Finish IP address cleanup, alpha should be clean for not displaying
106   server hosts or IP addresses to users now. This needs to be verified.
107   Changed version to u2.10.10 per Isomers suggestion. --Bleep
108 * Remove server IP address from info line for connecting servers.  
109   This almost completes the IP address hiding changes for alpha, there
110   are still a few stats commands available to users that will show the
111   server addresses, but they can be easily disabled or only show '*'s
112   to non-opers.  --Bleep
113 * Fix possible (but not likely) memory leak in debug allocator, couldn't
114   find the "meg a minute" problem, using the debug allocator on the
115   production network with more than 1000 clients on a server may cause
116   problems if you don't have a lot of memory. (This does not seem to
117   be a problem with non-debug builds) --Bleep
118 * Captialisation fixes, just to keep certain ppl quiet. --Isomer
119 * Removed +s channels from /list.  They were shown sometimes, but not
120   others, and the information that was shown about them was inconsistant.
121   list is not an effective way to gain information anyway. Reformatted
122   and touched up readme.who as well.  --Isomer
123 * Added MAP to ISUPPORT, added doc/features.txt --Isomer
124 * Added suggestions made by scripters. more info for ISUPPORT, and
125   added stuff to 'TODO' --Isomer
126 * More TODO items 'done'.  P:'s now ignore '*'s.  ping shouldn't do funky
127   stuff with mirc anymore, needs discussion --Isomer
128 * Typo fixed. Now I'm annoyed.  --Isomer
129 * Right, Makefile's gonna work now or I'm going to get REALLY annoyed at it.
130   --Isomer
131 * TODO, m_ping, ircd/Makefile.in: Added note to TODO, added info to
132   m_ping, and fixed Makefile bug using bsdmake. --Isomer
133 * s_bsd.c, listener.c, s_user.c, s_serv.c, s_bsd.h:
134   Set receive and send buffers in correct order to enable flow
135   control for clients and support fat pipes better for servers.
136   Finally got it right :)
137   See Stevens "Unix Network Programming" v1 p 191-193
138   --Bleep
139 * ircd.c (main): added idiot checking to make sure MAXCONNECTIONS
140   is sane. --Bleep
141 * send.c: Don't let negative fd's break stuff, audit sentalong
142   usage for sillyness. --Bleep
143 * send.c (sendto_common_channels): bug fix, code assumed client
144   local, file descriptor is only in local client struct
145   --Bleep
146 * table_gen.c, channel.c: make FIXME changes, removed
147   FIXME code from table_gen, readd FIXME code to channel.c,
148   I hope I got this right. --Bleep
149 * Makefile.in: Add purify def, fix so CFLAGS don't error
150   off when using Solaris compiler --Bleep
151 * fda.c (fda_free): fix compile error on Solaris --Bleep
152 * configure.in: add SunOS case to detect Solaris --Bleep
153 * os_solaris.c (os_send_nonb): fix solaris compile error --Bleep
154 * exaconf.2: add file from conf design to docs directory to
155   have it available for new conf parser development --Bleep
156 * fda.c (fda_free): fix memory leak, doh!!! --Bleep
157 * hash.c (addNickJupes): fix buffer overrun --Bleep
158 * s_bsd.c (read_message(poll)): fix uninitialized memory read
159   bogosity in poll macros. --Bleep
160 * channel.c (send_user_modes): change to send XXX:ov instead
161   of XXX:o:v doesn't send XXX: if no modes set. --Bleep
162 * s_bsd.c (connect_server): bugfix for connect/rehash/connect
163   multiple outstanding dns query core. --Bleep
164 * channel.c (send_user_modes): bugfix for burst not sending modes
165   when burst line is created. --Gte
166 * m_gline.c: change NumServ(cptr) to NumServ(sptr) found by Gte
167   --Bleep
168 * config-sh.in: add WildThangs BADCHAN config fix --Bleep
169 * config-sh.in: add Runs restart bugfix --Bleep
170 * Makefile.in: make sure version.c gets regenerated when checksums
171   change --Bleep
172 * Makefile.in: remove hash.c/crypt/sums idiocy, all of the ridiculous
173   anti-hack stuff is already done in version.c anyhow.
174   "Shhh..., don't tell the admins ( .)( .) you're being watched"
175   --Bleep
176 * hash.c (m_hash): fix count bugs --Bleep
177 * m_squit.c (mo_squit): fix off by one, /quote SQUIT bug --Bleep
178 * ircd_relay.c: oops, changed the wrong one.  Fixed previous fix. --Isomer
179 * Makefile.in, ircd_relay.c: Fixed 'make depend', added dependancies, fixed
180   bug where server would core on sending a server notice --Isomer
181 * m_kick.c (ms_kick): fix core on kick message coming from
182   server --Bleep
183 * config.in: remove CRYPT_LINK_PASSWORD option --Bleep
184 * doc/readme.www: Applied Runs' doc patch --Bleep
185 * client.h: Add member to client struct to try to aggravate the
186   bug found by Jesus --Bleep
187 * client.h: Remove IsListening macros and flags, add FLAGS_UPUNG
188   and IsUPing/GetUPing/SetUPing macros --Bleep
189 * m_silence.c, m_create.c: check for IsServer(sptr) don't
190   allow X SILENCE X +*@*.com or X C #blah 947477407 core the
191   server. --Bleep
192 * os_*.c, res.c: clean interface for os_recvfrom_nonb --Bleep
193 * uping.c, uping.h: new files for UDP pings, these aren't hooked up yet, or
194   finished or tested.
195   --Bleep
196 * channel.c: find_member_link(): Fail fast for Servers, prevents core when
197   servers set a channel mode. --Isomer
198 * channel.c, channel.h, various.c: Changed find_member_link() to take
199   a chptr instead of the first member, and special case'd +k users
200   (see comment in code for more details) --Isomer
201 * ircd/Makefile.in: Changed gnu specific $^ for $< in table_gen
202   rules --Bleep
203 * INSTALL: Explained about CVS --Isomer
204 * example.conf: Point to coder-com@ for help configuring the server. --Isomer
205 * INSTALL: Make things a bit more plain.  --Isomer
206 * s_bsd.c (read_message (poll)): removed local_cptr array using
207   this temp made possible a bug where if a client lower in the list
208   managed to exit a client higher in the list, a dangling reference
209   to the already exited client would be left in the local_cptr array.
210   Found by Quantum by loading 100's of clones with the same nick.
211   --Bleep
212 * INSTALL: Added instructions for -lcrypt FAQ --Isomer
213 * INSTALL: Added instructions for -lresolv FAQ --Isomer
214 * INSTALL: Added instructions for making ./configure executable --Isomer
215 * numeric.h: Merged in some more numerics that other ircds user --Isomer
216 * IPcheck.c: Fix gramatical error to keep pedants happy. --Isomer
217 * IPcheck.c: Allow -DNOTHROTTLE for debugging purposes.  --Isomer
218 * m_stats.c: make stats c available to opers only, TEMP_HACK --Bleep
219 * IPcheck.c: Fixed outdated comment.  Thanks Quantum --Isomer
220 * ircd_reply.c: Fix the fix, silly typo.  thanks Bleep --Isomer
221 * ircd_reply.c: added check for people without nicks.  --Isomer
222 * doc/Authors, ircd/version.c.SH: updated /info and maintainer 
223   lists. --Isomer
224 * channel.h, channel.c, m_join.c, m_mode.c: add David M's
225   lchanmode patch update --Bleep
226 * s_auth.c: fix ident bug, comment code for rule. --Bleep
227 * m_invite.c (m_invite): Fix syntax error, missing ')'. -- Isomer.
228 * m_invite.c (m_invite): tokenize invites, change from accidental
229   broadcast to directed message (bug fix). --Bleep
230 * m_time.c (m_time): send tokenized time messages --Bleep
231 * s_user.c (set_user_mode): Send wallops to everyone by default
232   allow compile option WALLOPS_OPER_ONLY for networks that want
233   to disable wallops for users. --Bleep
234 * s_misc.c (exit_one_client): tokenize client quit message to other servers.
235   --Gte
236 * m_kick.c: you would have thought I'd fix all of them the first time, but
237   no... -- Isomer
238 * m_kick.c: Fixed missing space after TOK_KICK -- Isomer
239 * m_burst.c: Fixed netrider kick bugs -- Isomer
240 * s_user.c: Bug fix --Bleep
241 * s_user.c: only send wallops to opers --Bleep
242 * s_user.c: enforced undernet policy. -- Isomer
243 * s_user.c: replace user_modes with struct UserMode array
244   change code to use new struct. --Bleep
245 * s_user.c (set_user_mode): clean up switch statement --Bleep
246 * channel.c (set_mode): fixed -k foo bug, extra == 0 typo in
247   conditional. --Bleep
248 * dbuf.c (dbuf_alloc): fixed count bug, we _have_ to count it in
249   the branches. --Bleep
250 * dbuf.c, send.c, s_bsd.c, send.h: bahh finally did it right,
251   if a dbuf allocation fails, attempt to flush all send buffers except
252   for the one we are trying to build (we're twiddling with the list etc..)
253   if the allocation fails a second time, _then_ bail. --Bleep
254 * s_bsd.c, send.c: if dbuf_put fails for send or receive buffers,
255   call flush connections to free up some buffers (safe here). --Bleep
256 * dbuf.c (dbuf_put): back out previous change, afaict it would fail
257   spectacularly --Bleep
258 * dbuf.c (dbuf_put): call flush_connections(0) if we can't allocate
259   a dbuf the first time, this may prevent the server from dropping
260   connections during netbursts. --Bleep
261 * m_privmsg.c: fix IDLE_ON_MSG fix -- Isomer
262 * m_privmsg.c, parse.c: fix IDLE_ON_MSG bug --Bleep
263 * m_ison.c (m_ison): Temp hack to fix missing null terminator. --Bleep
264 * m_nick.c (m_nick): fix null nick reply bug --Bleep
265 * ircd_string.c, match.c: fix a couple possible issues with
266   the character attribute changes --Bleep
267 * s_auth.c, ircd.c: turn off connection status messages for
268   connections to server ports. --Bleep
269 * ircd.c, s_conf.c, m_server.c, ircd.h, s_conf.h:
270   removed portnum and server_port global variables, server port
271   in M:lines is ignored, server ports now need to be defined in
272   the P:lines. Add SERVER_PORT config option to allow:
273   '/connect server.net.dom' without specifying the port. --Bleep
274 * config-sh.in: change PORTNUM to SERVER_PORT now used for
275   default server port for outgoing connections in m_connect.
276   --Bleep
277 * example.conf: document changes to M:line for server port --Bleep
278 * ircd_chattr.h, ircd_string.h, ircd_string.c, table_gen.c:
279   put Nemesi's table generation code and macros back in, the
280   tables are now automagically generated whenever the table_gen.c
281   file is modified, use a slightly different mechanism to get the
282   tables in the executable. Add reference data file to test dir
283   for character attributes. --Bleep
284 * s_auth.c (check_ident_reply): add function that implements
285   auth reply undernet rules checking. --Bleep
286 * s_misc.c (date): added Runs Y2K patch --Bleep
287 * m_privmsg.c: work on server handlers, hookup new code to parser,
288   test, fixed a couple bugs, fixed username bug in server NICK
289   processing --Bleep
290 * ircd_chattr.c, m_privmsg.c: Work on privmsg code a bit more,
291   commit for review, still a bit more to do --Bleep
292 * os_bsd.c, configure.in: add os dependency file for bsd
293   --Bleep
294 * m_privmsg.c, ircd_string.c: little cleanups for privmsg
295   work on prototype handler for new parser. --Bleep
296 * m_connect.c, s_conf.c: clean up /connect handling code
297   --Bleep
298 * m_away.c, m_admin.c, m_close.c, m_connect.c:
299   start cleaning up handlers --Bleep
300 * whocmds.c, whowas.c, *.c: split out handlers from whocmds.c
301   and whowas.c --Bleep
302 * s_serv.c, m_*.c: split out handlers from s_serv.c
303   --Bleep
304 * querycmds.c, m_*.c: split out handlers from querycmds.c
305   --Bleep
306 * opercmds.c, m_stats.c, m_connect.c, parse.c, handlers.h, *.c
307   add new command handlers --Bleep
308 * channel.c, m_names.c: new file for names handler --Bleep
309 * channel.c, m_list.c: new file for list handler --Bleep
310 * channel.c, m_topic.c: new file for topic handler --Bleep
311 * channel.c, m_burst.c: new file for burst handler --Bleep
312 * channel.c, m_create.c: new file for create handler --Bleep
313 * channel.c, m_destroy.c: new file for destroy handler --Bleep
314 * channel.c, send.c, m_join.c: new file for join handler,
315   const fixups for send.c --Bleep
316 * channel.c, m_mode.c: new file for mode command handler,
317   clean up file scope buffer mess. --Bleep
318 * m_silence.c: split out SILENCE handler to a new file,
319   cleanup --Bleep
320 * m_ison.c: split out ISON handler to a new file, cleanup --Bleep
321 * m_userip.c: split out to new file, change userhost and userip
322   to use same algorithm with different formatting functions --Bleep
323 * m_userhost.c: split out to new file --Bleep
324 * send.c: add new function send_buffer, cleanup godemode ick a bit
325   --Bleep
326 * m_wallchops.c: split out wallchops handler --Bleep
327 * m_cprivmsg.c: split out m_cprivmsg and m_cnotice.
328 * m_pass.c, s_user.c: split out m_pass, pass message handler
329   --Bleep
330 * m_oper.c: split out m_oper.c from s_user.c, setup to use
331   new parser. --Bleep
332 * m_pong.c, m_ping.c, parse.c, s_user.c, channel.c:
333   Add new file for pong messages, convert ping and pong to use
334   numerics. Test pings and pongs on testnet. Fix numeric
335   nick bug in channel.c. --Bleep
336 * m_ping.c, s_serv.c, parse.c: new file for pings, fixed a 
337   minor bug in ping handling. --Bleep
338 * m_nick.c, m_kill.c: clean up nick code for servers, still needs work
339   fix string formatting bug in m_kill --Bleep
340 * m_nick.c, s_user.c, ircd_chattr.c: add new file for NICK command,
341   clean up local client registration for nicks. --Bleep
342 * m_away.c, s_user.c, parse.c: split out m_away handlers for client,
343   add user_set_away function. --Bleep
344 * m_kill.c, ircd_reply: Rework handling of kill from server, add new error
345   message formatter. --Bleep
346 * m_kill.c (mo_kill): Rework handling for kill from operator on server
347   kill originated from --Bleep
348 * m_kill.c: new message handler file for kill --Bleep
349 * configure.in, ircd/Makefile.in: added automatic os checking to autoconf
350   checked --Gte
351 * m_quit.c: new message handler file for quit --Bleep
352 * m_privmsg.c: new message handler file for privmsg --Bleep
353 * ircd_string.c, support.c, support.h, *.c: moved strtoken to ircd_string
354   and renamed ircd_strtok --Bleep
355 * channel.c, s_user.c, s_debug.c, send.c, channel.h: finish membership code
356   --Bleep
357 * channel.c, more cleanups of membership code and macros --Bleep
358 * channel.c, s_misc.c: more cleanup in channel link code, most likely
359   still a bit broken yet, more to come. --Bleep
360 * querycmds.h (Count_remoteclientquits): fix minor bug --Bleep
361 * ircd.h, querycmds.h, struct.h, channel.c, list.c, map.c, opercmds.c,
362   s_err.c, s_serv.c, s_user.c, s_misc.c: Add Isomers passivelag0-1.patch
363   fixed minor bug in macros --Bleep
364 * channel.h, channel.c, s_user.c, s_debug.c, s_user.c:
365   added Membership struct for channel associations, change user/channel
366   lookups to use new struct. --Bleep
367 * channel.c, channel.h, s_user.c: cleanup channel and user code
368   a bit, new function find_no_nickchange_channel --Bleep
369 * parse.c, m_defaults.c: added default handlers and hooked up new
370   message handlers --Bleep
371 * *.c, struct.h: added Isomer's passivelag patch and, the second
372   p10 patch --Bleep
373 * ircd_reply.[ch]: new files for commonly used replies --Bleep
374 * m_proto.[ch]: new file for protocol command support, needed for zip
375   links --Bleep
376 * client.h, parse.c, msg.h: add code to support multiple message handlers
377   depending on client status. --Bleep
378 * s_bsd.c, packet.c: code cleanup prep for zip links --Bleep
379 * channel.c, opercmds.c, ircd.c, s_serv.c, s_user.c, querycmds.c, 
380   whocmds.c, whowas.c: Add Isomers p10ify patch, tokenize server to
381   server commands --Bleep
382 * s_user.c (m_nick): killed goto --Bleep
383 * client.h, *.c: moved client stuff to client.h --Bleep
384 * version.c.SH, patchlevel.h, .patches: change version string
385   generation, patch level is now set in patchlevel.h by simply
386   bumping the number in the PATCHLEVEL string. --Bleep
387 * ircd_alloc.c, channel.c: fixup warnings in release build (NDEBUG)
388   --Bleep
389 * fda.h, ircd_alloc.h, fda.c, ircd_alloc.c, fda_t.c: new files,
390   runmalloc was core dumping on squits and unable to handle or
391   detect double frees, the memory debug code can be disabled by
392   compiling with NDEBUG defined --Bleep
393 * channel.c (remove_user_from_channel): refactor function --Bleep
394 * channel.c (m_kick): refactor function a bit, put all checks at top
395   move code out to new function (make_zombie) --Bleep
396 * s_bsd.c (completed_connection): fixed stupid
397   "Write error to blah: Socket not connected" bug --Bleep
398 * struct.h, send.h, send.c, s_bsd.c, IPcheck.c, s_user.c, *:
399   More socket code cleanup, move file descriptor to local part of
400   client struct, use cptr->error to handle the errno of any socket
401   error, fix bug in IPcheck that ends up only disallowing every
402   256th clone, Add more ipcheck forgiveness to s_user.c (needs work).
403   Changed IPcheck_local_connect and IPcheck_connect_fail interfaces to
404   use struct in_addrs instead of client structs to allow delaying the
405   allocation of the client struct till after the check was done.
406   Added can_send function to send.c (should be called before work is done
407   but right now it's called just before trying to send (needs work))
408 * channel.c: Added Isomers netride2.patch, still needs a config option
409   to turn it on (NO_INVITE_NETRIDE) --Bleep
410 * parse.c, msg.h: Added silent ignores for notices so connect progress
411   messages do not cause connecting server to spew ERR_REGISTER_FIRST
412   messages at the server it's connecting to. --Bleep
413 * s_serv.c, s_user.c, channel.c, send.c: Tokenised BURST, NICK,
414   END_OF_BURST, EOB_ACK, PRIVMSG and NOTICE Server to Server.
415   About 8-10% Bandwidth saving on BURSTS. --Gte
416 * channel.c (m_join): servjoin patch --Isomer
417 * ircd_osdep.h, os_*.c, s_bsd.c, send.c: more cleanups in socket code,
418   use enumeration for IO results. --Bleep
419 * s_bsd.c: clean up select and poll code a bit more, fixed message pacing bug
420   in poll. --Bleep
421 * supported.h, numeric.h, s_user.c, s_err.c: Added Isomers features
422   patch. Use numeric 005 RPL_ISSUPPORT to convey server features to
423   clients. --Bleep
424 * s_user.c (m_nick): IP differ patch, use IP address instead of host
425   name to determine different user@host for nick collides. --Isomer
426 * hash.c (hChangeClient): Bug fix. Fixed bug that caused stale entries
427   to be left in client hash table after a name change. Discovered by
428   Quant and Isomer. --Bleep
429 * hash.c (hSeekClient): fixed bug I introduced when reversing my hash
430   table code changes, thanks Quant and Isomer --Bleep
431 * opercmds.c (m_lusers): send limited luser info to remote
432   clients --Isomer
433 * numeric.h, channel.c, s_err.c: Changed invite list numerics
434   from 283/284 to 346/347 to match IRCnet numerics --Bleep
435 * config-sh.in, gline.h, numeric.h, gline.c, opercmds.c, s_debug.c, s_err.c:
436   Add badchan patch by WildThang --Bleep
437 * config-sh.in, channel.h, numeric.h, channel.c, s_debug.c, s_err.c:
438   Add lchanmode patch by David M --Bleep
439 * channel.c (cancel_mode): removed incorrect assert --Bleep
440 * *.c: removed P9 support, not everything is completely gone but most
441   of it is, the server builds and connects to other servers, but thats
442   as far as it's been tested so far. --Bleep
443 * ircd.h, ircd.c, s_bsd.c:
444   removed BOOT_INETD/BOOT_CONSOLE code, unused non-functional --Bleep
445 * struct.h, ircd.h, ircd.c, s_user.c, s_bsd.c:
446   removed BOOT_OPER/STAT_MASTER code, original patch by Isomer --Bleep
447 * s_user.c (m_nick): removed redundant check for acptr
448 * hash.c (hSeekClient, hSeekChannel): roll back some of hash.c changes
449 * hash.c (hSeekClient, hSeekChannel): removed unused variable from previous
450    changes.
451 * hash.c (hSeekClient, hSeekChannel): fix compile error from status changes,
452    fix logic bug that caused the first client that matched the mask to be
453    returned regardless of whether or not it's name matched, this can result
454    in wierd problems where the wrong server/client could be returned from the
455    hash table lookup. Removed code that moved client to head of hash table
456    chain for it's bucket when it's looked up, if the hash table is working
457    reasonably well this just wastes cpu.
458 * hash.c, list.c: added code to zero out cptr->hnext when client removed
459    from hash table, added assert for hnext == 0 in list.c to make sure that
460    client was actually removed from the hash table before freeing it's memory.
461 * various: misc cleanups
462 * support.c: removed dead code
463 * configure.in: remove unneeded checks for minix, aix, ansi/posix headers
464    these things are handled by porting layer code.
465 * res.c: remove calls to add_local_domain, these were causing incorrect
466    behavior
467 * opercmds.c: cleanups in gline code
468 * s_bsd.c: increase socket buffers to 65535 for server connections
469 * crypt/mkpasswd.c: mutter correct runes to get file to compile without warnings
470 * gline.c, gline.h: add new files to attempt to encapsulate glines a bit,
471    some code from opercmds.c needs to be moved here still
472 * opercmds.c (m_gline): fix local gline bug
473 * s_conf.c (initconf): add password change on rehash fix
474 * s_conf.c (rehash): fix rehash freeing and reloading the motd/rmotd files for
475    every client connected.
476 * ircd_log.c: use 2K fixed buffer instead of vsnprintf, nothing we write to
477    the log should ever exceed 512 bytes, but it doesn't hurt to be paranoid.
478 * res.c: change resolver timeouts to 5 seconds, per RFC1123
479 * channel.c: more little cleanups, no code changes
480 * channel.c: a) stops iterating over /invite list
481     b) adds /invite to list the channels you're currently invited to.
482     c) adds lotsa new numerics --Isomer
483 * ircd_signal.c, ircd.c: fix bug in signals
484 * channel.c (can_send) add Isomer's changes
485 * channel.c: add send_ban_list, cleanup a few names, reformat some parts to make
486     more readable, fix bug introduced by name changes
487 * ircd_chattr.[ch]: add new macro for checking K:line time chars vs comments
488 * listener.c (show_ports): add code to show client/server and hidden status
489 * s_conf.c: bug fixes, cleanups, add code to set server port and hidden
490     status for listeners (P:lines)
491 * s_conf.c (initconf): add interface selection code to P:lines so ports can
492     be set on a single interface or multiple interfaces (multi-homed hosts)
493 * s_conf.c: rewrote C/N line code, removed N:lines entirely, clean up server
494     conf line code.
495 * s_conf.c (check_server): move ip checks out of resolved or not so they can
496     be checked for worse case situations on server connects
497 * res.c (resolver_read): add Isomer's debug info for failed resolver queries
498 * opercmds.c (m_stats): remove call to time(0) for each local client in 
499     stats l command, use CurrentTime instead
500 * s_conf.c (initconf): only do lookups on C:lines instead of both C/N lines
501 * res.c: fix resolver hang bugs
502 * s_conf.c (rehash): remove extra semicolin that was causing c/n lines to
503     accumulate
504 * s_conf.c (rehash): add portnum back to the listener list so we don't loose
505     the server port on a rehash
506 * s_auth.c, listener.c: remove warnings for normal errors
507 * s_auth.c, listener.c: use osdep non-blocking calls instead of locals
508 * s_auth.c, listener.c: add code for non-blocking recovery for listeners and
509     auth queries
510 * s_auth.c (auth_error): call IPcheck_connect_fail if the client socket dies
511     during the auth check so the reference count doesn't get borked in the
512     IPcheck code.
513 * numnicks.c: yet another extended numerics bug fix... sheesh
514 * s_bsd.c, s_conf.c: move conf line code from s_bsd.c to s_conf.c, cleanup
515     cleanup check_server, check_client (still not completely tested, may be
516     a bit buggy yet).
517 * parse.h, parse.c, s_debug.c: remove privmsg logging code
518 * numnicks.c (FindXNServer): fix off by one bug
519 * common.h, common.c: removed unused files
520 * s_bsd.c (net_connect_completed): new function, called after connection
521     establishment for servers and clients, release reference count for
522     the dns reply and set the socket buffer size to IRCD_READBUF_SIZE 
523     for servers and 2K for clients.
524 * channel.c, crule.c: cleanup bogus casts
525 * listener.h (add_listener): fix bug that caused server a server port listener
526     to think it was a client port listener.
527 * s_user.c, s_serv.c: release reference to dns_reply when connection is
528     established.
529 * s_bsd.c (completed_connection): removed call to start_auth for connects
530     the auth module expects connections not to be linked anywhere and owns
531     the client struct until it's done.
532 * listener.c (release_listener): fix inverted assert client exit bug
533 * ircd_chattr.c: fix signed/unsigned warnings with Sun Workshop (+w)
534 * ircd_chattr.c, ircd_chattr.h: new files for character attributes and case
535     translation, hopefully they will be a bit easier to maintain.
536 * s_conf.c (rehash): fixed logic bug that caused and infinite loop, 
537     fix port update bug (needed to call mark_listeners_closing before initconf)
538 * *.c, runmalloc.[ch]: change the way the server deals with out of memory
539     conditions. On server startup a no-memory handler is installed which
540     calls server_restart if an allocation fails. Allocations are now checked
541     in the memory allocation functions. Added asserts after every allocation
542     to verify for debug.
543 * *.c *.h: move authentication and dns to authentication module rename a few
544     globals, const correctness fixes, add ircd_string code, rework network
545     code, use dns callbacks, removed a lot of redundant code 
546 * s_bsd.c: finish this stage of net code work
547 * *.c, *.h: rewrite select and poll code, add listener.[ch] net.code overhaul
548     in progress, prepare for adding auth module
549 * s_bsd.h, struct.h: moved client struct macros back into struct.h for now,
550     the last place they belonged was in the network code... feh
551 * ircd.c (open_debugfile): removed client for debug file
552 * ircd_string.h, ircd_string.c: new files for string processing, add
553     ircd_strncpy function
554 * *.c, *.h: rename ircstp to ServerStats
555 * *.c, *.h: rename now to CurrentTime
556 * listener.h, listener.c: new files for listener ports
557 * include/ircd_defs.h: new file for global definitions (HOSTLEN, USERLEN)
558 * struct.h: add local_flag to client struct, to make local/remote detection simpler
559 * s_bsd.c (read_message): split out separate versions for select and poll
560 * s_bsd.h, various source files: remove the rest of the unix domain socket 
561     support this removes a number of comparisons that were unneeded in 
562     code that should run reasonably fast.
563 * os_*.c, res.c, ircd_osdep.h: add os_recvfrom_nonb for resolver
564 * os_*.c, s_bsd.c, s_auth.c, ircd_osdep.h: add os_get_sockname, os_get_peername
565 * bsd.h, bsd.c: merge into s_bsd
566 * ircd_osdep.h, os_generic.c, os_linux.c, ircd_osdep.h: move os variable stuff
567     to separate compilation units, os generic contains the original code
568     (start here). 
569 * s_bsd.c, send.c, struct.h: remove pyr (pyramid) finally
570 * res.h, res.c, s_misc.c: cleanup headers/dependencies in res.h
571 * match.h: include sys/types.h before netinet/in.h, broken BSD system headers
572 * ircd/Makefile.in: remove CFLAGS from link line, use LDFLAGS instead
573 * ircd.c: add missing include for sys/socket.h
574 * common.h (strChattr, strCasediff): remove pointless non-portable inline
575     decls. The functions are complex enough that inlining just bloats the code
576 * ircd_xopen.h, ircd_xopen.c, s_user.c, s_serv.c: porting layer for crypt and
577     other xopen library calls, moved crypt to ircd_xopen.
578 * s_uping.c, s_uping.h, s_bsd.c, s_misc.c, s_bsd.h, ircd.c, s_debug.c:
579     Removed s_ping. There are much better tools available that actually work
580     correctly. The s_ping code was a waste of resources, and has historically
581     given incorrect results (it never worked correctly).
582 * ircd/s_bsd.c, res.c, s_user.c, s_serv.c: little fixups to allow code to
583     build on Solaris, still have some warnings there.
584     TODO: wrap crypt and things that depend on _XOPEN_SOURCE in their own
585     file so it doesn't bother the network code.
586 * ircd/s_bsd.c: cast option arg to const char* for setsockopt (solaris)
587 * ircd/Makefile.in: removed hard coded dependencies for hash.o chkconfig.o,
588     let the automatic stuff take care of it, it does it better than humans.
589 * *.c *.h: remove register keywords, attribute macro junk, cleanup
590     dependencies, rename MIN and MAX to IRCD_MIN IRCD_MAX all headers in
591     C files are sorted, removed as many duplicate includes as I could find
592     (dozens) general cleanups. Mutter the correct runes to get the protoype
593     for crypt included where it was needed.
594 * *.c *.h: dependency cleanups up to querycmds.c
595 * ircd.c, bsd.c, s_bsd.c: move signal handling code to ircd_signal.c
596 * ircd_signal.c, ircd_signal.h: new files, use only POSIX signals remove
597     support for unreliable signals.
598 * *.h *.c: include guards, dependency cleanups
599 * Configure.in, setup-sh.in: include guards, config.h includes setup.h
600     add config dir to include path
601 * sys.h: include guards, remove hard coded path to config.h
602 * s_user.c (hunt_server): fix logic bug
603 * numnicks.c (SetServerYXX): fix off by one error
604 * multiple files (n2k patch): add code to handle extended numerics