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