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