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