#
# ChangeLog for ircu2.10.10
#
# $Id: ChangeLog.10 440 2002-12-29 02:55:36Z pierreg0 $
#
# Insert new changes at beginning of the change list.
#
-------------------------- Released 2.10.10.pl15
* Fiddle with /KILL and various exits to make the user experience uniform,
  no matter who's doing the killing or where.  Previously, differences in
  QUITs and in the messages sent to the killed client could help make a
  partial map of the network; now that these messages are all uniform, there
  is no way to tell. -Kev
* Split ISUPPORT numeric into two numerics, so as not to exceed the 15
  parameter limit imposed by the RFC -Kev
* Turn on HEAD_IN_SAND_REMOTE...oops -Kev
* Send prefixed error messages to other servers, so ERROR doesn't get
  interpreted as a prefix -Kev
* Reverse sense of HEAD_IN_SAND_WHO_HOPCOUNT to do what was intended; use a
  hopcount of 0 if user is using /who on him/herself -Kev
* Allow a user to see his/her own idle time without having to do
  /whois <nick> <nick>; correct spelling of HEAD_IN_SAND_IDLETIME to
  HEAD_IN_SAND_WHOIS_IDLETIME -Kev
* Fix a missing ')' in the idle time stuff -Kev
* Include ircd_policy.h in whocmds.c -Kev
* Fixed bug in idle time, thanks hektik -- Isomer
* Update 005 to be compliant with other networks -- Isomer
* Hide hop count -- Isomer
* Hide idletime unless you explicitly ask for it -- Isomer
* /wallops and /wallusers would dump core because of the previous change--my
  bad.  Now only include user@host when sptr is a client. -Kev
* /wallops and /wallusers would leave out the user@host--noticed because
  pl14 broke my script.  Fixed. -Kev
* Fix several compile warnings, including the one in table_gen.c -Kev
* Fix a bug in m_silence.c that rendered it uncompilable -Kev
* Hopefully make mode clears during bursts appear to originate from local
  server -Kev
* Fix several things to send server<->server protocol messages with numeric
  origins -Kev
* Rework directed notices and mass-messages to use numerics and tokens
  as appropriate; the latter required the modifications to
  sendto_match_butone() -Kev
* Redefined how sendto_match_butone() works, since it's only used with
  PRIVMSG or NOTICE -Kev
* Bumped patchlevel to pl15(development) -Kev
* Corrected reverse-sense of HEAD_IN_SAND_REMOTE test in m_whois() -Kev
* Clean up logic in m_whowas(), corrected numeric reply -Kev
* Finally fixed /whois to tell you what your own server is -Kev
* Clean up logic in add_banid() with some well-placed DupString()'s -Kev
* Hide which server performed a nick collision kill -- Isomer
* To allow for remote whois not giving away the remote server, all remote 
  numerics to clients are remapped to come from the local server :/ -- Isomer
* All remote queries are disabled for users, except /whois -- Isomer
  (/whois now uses the second parameter for which server to use, ie:
   /whois <ignored> <nick> will query <nick>'s server.)
* Fixed /who showing server name -- Isomer
* Fixed burst showing linking server -- Isomer
* Fixed burst bans showing linked server -- Isomer
* Fixed /whowas showing server name -- Isomer
-------------------------- Released 2.10.10.pl14 (You got any issues with that punk?)
* Changed (then fixed) /LINKS to output an empty links list -- Isomer
* Make netsplit server notice say the right thing
* Final fix for HEAD_IN_SAND_WHOIS_SERVERNAME
* Fix a bug with implementation of HEAD_IN_SAND_NETSPLIT
* Permit users to find out what server they're on, since they already
  know -- Kev
* Added HEAD_IN_SAND_WHO_SERVERNAME to cover final source of server
  names -- Kev
* Fixed wallops, wallusers now sends wallops to local clients,
  wallusers to servers.
* Added host to /kill messages -- Isomer
* Fixed whois (opers can see server names) -- Isomer
* Implement walluser -- Bleep
* stats fixed -- Isomer
* trace disabled from non opers -- Isomer
* server name removed from whois (but not /who, shrug!) -- Isomer
* netsplits are now represented with "*.net *.split" -- Isomer
* Done /links -- Isomer
* Modifications to map as suggested by nighty -- Isomer
* Wallops is the only code that uses sendto_ops_butone now, this
  isolates wallops entirely. No server notices sent by wallops.
* HEAD_IN_SAND_SNOTICES done -- Bleep
* HEAD_IN_SAND_WALLOPS done -- Bleep
* HEAD_IN_SAND_DESYNC done -- Bleep
* HEAD_IN_SAND_MAP done -- Isomer
* According to CFV-165, buring our head in the sand to try and
* hide from DoS - First pass -- Isomer
* As requested by hop: hidden keys are shown as "*" not "" -- Isomer
* As requested by Buff: allow admins to *disable* below behavour -- Isomer
* As requested by Adriel, compile time option to disable mo_wallops 
 -- Isomer
-------------------------- Released 2.10.10.pl13
* Don't allow two copies of the server to start -- Isomer/Kev
-------------------------- Released 2.10.10.pl12
* Release 2.10.10.pl12 before Mr_RIP threatens physical violence -- Isomer
* Don't 'hubhide' nick's in /trace (oops!) -- Isomer
* Allow K:line by realname, updated client connection logging -- Gte-
* ircd/m_join.c: use ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME -- Kev
--------------------------- Released 2.10.10.pl11.(release)
* Fixed G-lined (reason), thanks to dfx -- Isomer
* Added reason to the "G-lined (reason)" quit messages. -- Isomer
* Removed 'for nick[1.2.3.4]' from quit messages, they're redundant
  and make hub hiding more reliable --Isomer
* ircd/s_user.c (hunt_server): add 'No such server' message back 
  --Isomer
* ircd/s_bsd.c: remove ALWAYSFLUSH - the problem wasn't ircu's fault 
  -- Isomer
* ircd/m_names.c (m_names): don't add a space if the user's a
  zombie; fixes an overrun where we generate a huge number of spaces
  in the names reply without length-checking them properly -- Kev
* added 'ALWAYSFLUSH', if you thought the furgeson flusher was bad...
  --Isomer
* Fixed /USERHOST again.  Horribly embarrased.  Thanks again Liandrin 
  --Isomer
* Added extra field to /stats Y showing how many people are in that class.
  Information was previously available via /trace, however tended to flood
  you off if you weren't on a good connection.  Requested by Mr_RIP
  -- Isomer
* Fixed 'BADCHAN' resetting itself to 'Y', reported by Gator --Isomer
--------------------------- Released 2.10.10.pl10
* Released 2.10.10.pl10
* Backported /names optimisation from 2.10.11.
  '/names 0' now returns verbose listing, '/names' simply returns
  ENDOFNAMES. Disallow harmfull /names usage. --Gte
* Fixed ERR_NOSUCHNICK bug in userhost, thanks to Liandrin --Isomer
* Conceal more bugs in IPcheck --Isomer
* Add 'POST' as a unregistered command to disconnect people abusing web
  proxies --Isomer.
* Conceal bugs in IPcheck --Isomer
* Fix for changing the wrong define --Isomer
* Fix for the easter buggy. --Isomer
* Fix for rpong --Run
* Fix for other IPcheck bug, thanks BLMet. --Bleep
* Fix for IPcheck bug, rewrite IPcheck from scratch (mostly),
  add changes for new code to s_user.c, ircd.c --Bleep
* Shorten connection timeout for auth queries to 60 seconds
  If connection is from localhost use the server alias for the
  client host. --Bleep
* Fix for ident bug --Isomer
* Fix for rping/rpong --Gte
* Add m_pong to parser handler --Bleep
* Fix for EXTENDED_NUMERICS bug doh!!! --Bleep
* Fix for Max Undernet Server bug --Bleep
* Fix for PRIVMSG<->NOTICE translation from hubs --Bleep
* Fix for Bogus protocol strings for P9 servers --Bleep
* Hookup UPING code again, cleanups --Bleep
* Convert numerics back to mask and shift extended numerics
  follow same mechanism --Bleep
* Fixed bogus errno return on Solaris --Bleep
* Fixed core on RPING bug, tokenized RPING --Bleep
* Remove add_local_domain entirely, unused --Bleep
* Merge u2_10_10_beta06 create branch u2_10_10_beta07 --Bleep
* Remove size_t from socket calls, audit usage of size_t
  values. --Bleep
* Fix for OSF1, RES_NOALIASES not defined there. --Bleep
* Don't bother doing hostname lookup or setting me.sockhost
  since we never want to display it there is really no reason
  to have the info. --Bleep
* Bugfix broken N:line check in chkconf --Maniac
* Bugfix, fix clients occasionally getting stuck in IPcheck
  code. Add note to members in client struct that aren't used
  for any remote client code, didn't want to actually move them
  this close to release (paranoia) --Bleep
* A few little cleanups in check_pings, removed yet another
  address display. --Bleep
* Bugfix, autoconnects displaying server IP address to opers.
  --Bleep
* Remove names from /stats p, since its always the server
  name from the M:line anyhow, (redundant information)
  --Bleep
* Unborked throttling. --Bleep
* Fix two stupid bugs, related to IP mismatch kills. --Bleep
* Clean up configuration, make it a bit easier for admins to
  turn off asserts and heap checking code. Moved host name dns
  query for listener virtual host ports to dead code and use
  me.name for the listener name (no sense in looking up the name
  if we don't want to display it). Change direct bump of unknowns
  in s_bsd.c to Count_newunknowns(UserStats) for consistency.
  --Bleep
* Added option to kill any connecting client with a forward and
  reverse DNS mismatch. Fixed bug in s_auth that that caused
  incorrect counts for unknown clients. Replaced missing server
  notice for SNO_IPMISMATCH. --Bleep
* Added a few more little name tweaks, no sense in looking up
  the hostname in the conf if no one knows it. --Bleep
* Moved to beta archive, bumped patchlevel, fixed message for
  lost C:line in s_conf.c (I don't think I've ever seen this happen)
  --Bleep
* Finished host hiding changes, it should not be possible for any
  online user to discover the real hostname or IP address of any
  connected or unconnected server listed in the configuration. This
  applies to opers and regular users. The name in the M:line is the
  name used for connecting and all informational messages. --Bleep
* Removed code in dbuf.c that flushes the dbufs if the server runs out
  it looks like a fully loaded server may not be able to handle a net
  break without shedding a few clients. --Bleep
* Finish IP address cleanup, alpha should be clean for not displaying
  server hosts or IP addresses to users now. This needs to be verified.
  Changed version to u2.10.10 per Isomers suggestion. --Bleep
* Remove server IP address from info line for connecting servers.  
  This almost completes the IP address hiding changes for alpha, there
  are still a few stats commands available to users that will show the
  server addresses, but they can be easily disabled or only show '*'s
  to non-opers.  --Bleep
* Fix possible (but not likely) memory leak in debug allocator, couldn't
  find the "meg a minute" problem, using the debug allocator on the
  production network with more than 1000 clients on a server may cause
  problems if you don't have a lot of memory. (This does not seem to
  be a problem with non-debug builds) --Bleep
* Captialisation fixes, just to keep certain ppl quiet. --Isomer
* Removed +s channels from /list.  They were shown sometimes, but not
  others, and the information that was shown about them was inconsistant.
  list is not an effective way to gain information anyway. Reformatted
  and touched up readme.who as well.  --Isomer
* Added MAP to ISUPPORT, added doc/features.txt --Isomer
* Added suggestions made by scripters. more info for ISUPPORT, and
  added stuff to 'TODO' --Isomer
* More TODO items 'done'.  P:'s now ignore '*'s.  ping shouldn't do funky
  stuff with mirc anymore, needs discussion --Isomer
* Typo fixed. Now I'm annoyed.  --Isomer
* Right, Makefile's gonna work now or I'm going to get REALLY annoyed at it.
  --Isomer
* TODO, m_ping, ircd/Makefile.in: Added note to TODO, added info to
  m_ping, and fixed Makefile bug using bsdmake. --Isomer
* s_bsd.c, listener.c, s_user.c, s_serv.c, s_bsd.h:
  Set receive and send buffers in correct order to enable flow
  control for clients and support fat pipes better for servers.
  Finally got it right :)
  See Stevens "Unix Network Programming" v1 p 191-193
  --Bleep
* ircd.c (main): added idiot checking to make sure MAXCONNECTIONS
  is sane. --Bleep
* send.c: Don't let negative fd's break stuff, audit sentalong
  usage for sillyness. --Bleep
* send.c (sendto_common_channels): bug fix, code assumed client
  local, file descriptor is only in local client struct
  --Bleep
* table_gen.c, channel.c: make FIXME changes, removed
  FIXME code from table_gen, readd FIXME code to channel.c,
  I hope I got this right. --Bleep
* Makefile.in: Add purify def, fix so CFLAGS don't error
  off when using Solaris compiler --Bleep
* fda.c (fda_free): fix compile error on Solaris --Bleep
* configure.in: add SunOS case to detect Solaris --Bleep
* os_solaris.c (os_send_nonb): fix solaris compile error --Bleep
* exaconf.2: add file from conf design to docs directory to
  have it available for new conf parser development --Bleep
* fda.c (fda_free): fix memory leak, doh!!! --Bleep
* hash.c (addNickJupes): fix buffer overrun --Bleep
* s_bsd.c (read_message(poll)): fix uninitialized memory read
  bogosity in poll macros. --Bleep
* channel.c (send_user_modes): change to send XXX:ov instead
  of XXX:o:v doesn't send XXX: if no modes set. --Bleep
* s_bsd.c (connect_server): bugfix for connect/rehash/connect
  multiple outstanding dns query core. --Bleep
* channel.c (send_user_modes): bugfix for burst not sending modes
  when burst line is created. --Gte
* m_gline.c: change NumServ(cptr) to NumServ(sptr) found by Gte
  --Bleep
* config-sh.in: add WildThangs BADCHAN config fix --Bleep
* config-sh.in: add Runs restart bugfix --Bleep
* Makefile.in: make sure version.c gets regenerated when checksums
  change --Bleep
* Makefile.in: remove hash.c/crypt/sums idiocy, all of the ridiculous
  anti-hack stuff is already done in version.c anyhow.
  "Shhh..., don't tell the admins ( .)( .) you're being watched"
  --Bleep
* hash.c (m_hash): fix count bugs --Bleep
* m_squit.c (mo_squit): fix off by one, /quote SQUIT bug --Bleep
* ircd_relay.c: oops, changed the wrong one.  Fixed previous fix. --Isomer
* Makefile.in, ircd_relay.c: Fixed 'make depend', added dependancies, fixed
  bug where server would core on sending a server notice --Isomer
* m_kick.c (ms_kick): fix core on kick message coming from
  server --Bleep
* config.in: remove CRYPT_LINK_PASSWORD option --Bleep
* doc/readme.www: Applied Runs' doc patch --Bleep
* client.h: Add member to client struct to try to aggravate the
  bug found by Jesus --Bleep
* client.h: Remove IsListening macros and flags, add FLAGS_UPUNG
  and IsUPing/GetUPing/SetUPing macros --Bleep
* m_silence.c, m_create.c: check for IsServer(sptr) don't
  allow X SILENCE X +*@*.com or X C #blah 947477407 core the
  server. --Bleep
* os_*.c, res.c: clean interface for os_recvfrom_nonb --Bleep
* uping.c, uping.h: new files for UDP pings, these aren't hooked up yet, or
  finished or tested.
  --Bleep
* channel.c: find_member_link(): Fail fast for Servers, prevents core when
  servers set a channel mode. --Isomer
* channel.c, channel.h, various.c: Changed find_member_link() to take
  a chptr instead of the first member, and special case'd +k users
  (see comment in code for more details) --Isomer
* ircd/Makefile.in: Changed gnu specific $^ for $< in table_gen
  rules --Bleep
* INSTALL: Explained about CVS --Isomer
* example.conf: Point to coder-com@ for help configuring the server. --Isomer
* INSTALL: Make things a bit more plain.  --Isomer
* s_bsd.c (read_message (poll)): removed local_cptr array using
  this temp made possible a bug where if a client lower in the list
  managed to exit a client higher in the list, a dangling reference
  to the already exited client would be left in the local_cptr array.
  Found by Quantum by loading 100's of clones with the same nick.
  --Bleep
* INSTALL: Added instructions for -lcrypt FAQ --Isomer
* INSTALL: Added instructions for -lresolv FAQ --Isomer
* INSTALL: Added instructions for making ./configure executable --Isomer
* numeric.h: Merged in some more numerics that other ircds user --Isomer
* IPcheck.c: Fix gramatical error to keep pedants happy. --Isomer
* IPcheck.c: Allow -DNOTHROTTLE for debugging purposes.  --Isomer
* m_stats.c: make stats c available to opers only, TEMP_HACK --Bleep
* IPcheck.c: Fixed outdated comment.  Thanks Quantum --Isomer
* ircd_reply.c: Fix the fix, silly typo.  thanks Bleep --Isomer
* ircd_reply.c: added check for people without nicks.  --Isomer
* doc/Authors, ircd/version.c.SH: updated /info and maintainer 
  lists. --Isomer
* channel.h, channel.c, m_join.c, m_mode.c: add David M's
  lchanmode patch update --Bleep
* s_auth.c: fix ident bug, comment code for rule. --Bleep
* m_invite.c (m_invite): Fix syntax error, missing ')'. -- Isomer.
* m_invite.c (m_invite): tokenize invites, change from accidental
  broadcast to directed message (bug fix). --Bleep
* m_time.c (m_time): send tokenized time messages --Bleep
* s_user.c (set_user_mode): Send wallops to everyone by default
  allow compile option WALLOPS_OPER_ONLY for networks that want
  to disable wallops for users. --Bleep
* s_misc.c (exit_one_client): tokenize client quit message to other servers.
  --Gte
* m_kick.c: you would have thought I'd fix all of them the first time, but
  no... -- Isomer
* m_kick.c: Fixed missing space after TOK_KICK -- Isomer
* m_burst.c: Fixed netrider kick bugs -- Isomer
* s_user.c: Bug fix --Bleep
* s_user.c: only send wallops to opers --Bleep
* s_user.c: enforced undernet policy. -- Isomer
* s_user.c: replace user_modes with struct UserMode array
  change code to use new struct. --Bleep
* s_user.c (set_user_mode): clean up switch statement --Bleep
* channel.c (set_mode): fixed -k foo bug, extra == 0 typo in
  conditional. --Bleep
* dbuf.c (dbuf_alloc): fixed count bug, we _have_ to count it in
  the branches. --Bleep
* dbuf.c, send.c, s_bsd.c, send.h: bahh finally did it right,
  if a dbuf allocation fails, attempt to flush all send buffers except
  for the one we are trying to build (we're twiddling with the list etc..)
  if the allocation fails a second time, _then_ bail. --Bleep
* s_bsd.c, send.c: if dbuf_put fails for send or receive buffers,
  call flush connections to free up some buffers (safe here). --Bleep
* dbuf.c (dbuf_put): back out previous change, afaict it would fail
  spectacularly --Bleep
* dbuf.c (dbuf_put): call flush_connections(0) if we can't allocate
  a dbuf the first time, this may prevent the server from dropping
  connections during netbursts. --Bleep
* m_privmsg.c: fix IDLE_ON_MSG fix -- Isomer
* m_privmsg.c, parse.c: fix IDLE_ON_MSG bug --Bleep
* m_ison.c (m_ison): Temp hack to fix missing null terminator. --Bleep
* m_nick.c (m_nick): fix null nick reply bug --Bleep
* ircd_string.c, match.c: fix a couple possible issues with
  the character attribute changes --Bleep
* s_auth.c, ircd.c: turn off connection status messages for
  connections to server ports. --Bleep
* ircd.c, s_conf.c, m_server.c, ircd.h, s_conf.h:
  removed portnum and server_port global variables, server port
  in M:lines is ignored, server ports now need to be defined in
  the P:lines. Add SERVER_PORT config option to allow:
  '/connect server.net.dom' without specifying the port. --Bleep
* config-sh.in: change PORTNUM to SERVER_PORT now used for
  default server port for outgoing connections in m_connect.
  --Bleep
* example.conf: document changes to M:line for server port --Bleep
* ircd_chattr.h, ircd_string.h, ircd_string.c, table_gen.c:
  put Nemesi's table generation code and macros back in, the
  tables are now automagically generated whenever the table_gen.c
  file is modified, use a slightly different mechanism to get the
  tables in the executable. Add reference data file to test dir
  for character attributes. --Bleep
* s_auth.c (check_ident_reply): add function that implements
  auth reply undernet rules checking. --Bleep
* s_misc.c (date): added Runs Y2K patch --Bleep
* m_privmsg.c: work on server handlers, hookup new code to parser,
  test, fixed a couple bugs, fixed username bug in server NICK
  processing --Bleep
* ircd_chattr.c, m_privmsg.c: Work on privmsg code a bit more,
  commit for review, still a bit more to do --Bleep
* os_bsd.c, configure.in: add os dependency file for bsd
  --Bleep
* m_privmsg.c, ircd_string.c: little cleanups for privmsg
  work on prototype handler for new parser. --Bleep
* m_connect.c, s_conf.c: clean up /connect handling code
  --Bleep
* m_away.c, m_admin.c, m_close.c, m_connect.c:
  start cleaning up handlers --Bleep
* whocmds.c, whowas.c, *.c: split out handlers from whocmds.c
  and whowas.c --Bleep
* s_serv.c, m_*.c: split out handlers from s_serv.c
  --Bleep
* querycmds.c, m_*.c: split out handlers from querycmds.c
  --Bleep
* opercmds.c, m_stats.c, m_connect.c, parse.c, handlers.h, *.c
  add new command handlers --Bleep
* channel.c, m_names.c: new file for names handler --Bleep
* channel.c, m_list.c: new file for list handler --Bleep
* channel.c, m_topic.c: new file for topic handler --Bleep
* channel.c, m_burst.c: new file for burst handler --Bleep
* channel.c, m_create.c: new file for create handler --Bleep
* channel.c, m_destroy.c: new file for destroy handler --Bleep
* channel.c, send.c, m_join.c: new file for join handler,
  const fixups for send.c --Bleep
* channel.c, m_mode.c: new file for mode command handler,
  clean up file scope buffer mess. --Bleep
* m_silence.c: split out SILENCE handler to a new file,
  cleanup --Bleep
* m_ison.c: split out ISON handler to a new file, cleanup --Bleep
* m_userip.c: split out to new file, change userhost and userip
  to use same algorithm with different formatting functions --Bleep
* m_userhost.c: split out to new file --Bleep
* send.c: add new function send_buffer, cleanup godemode ick a bit
  --Bleep
* m_wallchops.c: split out wallchops handler --Bleep
* m_cprivmsg.c: split out m_cprivmsg and m_cnotice.
* m_pass.c, s_user.c: split out m_pass, pass message handler
  --Bleep
* m_oper.c: split out m_oper.c from s_user.c, setup to use
  new parser. --Bleep
* m_pong.c, m_ping.c, parse.c, s_user.c, channel.c:
  Add new file for pong messages, convert ping and pong to use
  numerics. Test pings and pongs on testnet. Fix numeric
  nick bug in channel.c. --Bleep
* m_ping.c, s_serv.c, parse.c: new file for pings, fixed a 
  minor bug in ping handling. --Bleep
* m_nick.c, m_kill.c: clean up nick code for servers, still needs work
  fix string formatting bug in m_kill --Bleep
* m_nick.c, s_user.c, ircd_chattr.c: add new file for NICK command,
  clean up local client registration for nicks. --Bleep
* m_away.c, s_user.c, parse.c: split out m_away handlers for client,
  add user_set_away function. --Bleep
* m_kill.c, ircd_reply: Rework handling of kill from server, add new error
  message formatter. --Bleep
* m_kill.c (mo_kill): Rework handling for kill from operator on server
  kill originated from --Bleep
* m_kill.c: new message handler file for kill --Bleep
* configure.in, ircd/Makefile.in: added automatic os checking to autoconf
  checked --Gte
* m_quit.c: new message handler file for quit --Bleep
* m_privmsg.c: new message handler file for privmsg --Bleep
* ircd_string.c, support.c, support.h, *.c: moved strtoken to ircd_string
  and renamed ircd_strtok --Bleep
* channel.c, s_user.c, s_debug.c, send.c, channel.h: finish membership code
  --Bleep
* channel.c, more cleanups of membership code and macros --Bleep
* channel.c, s_misc.c: more cleanup in channel link code, most likely
  still a bit broken yet, more to come. --Bleep
* querycmds.h (Count_remoteclientquits): fix minor bug --Bleep
* ircd.h, querycmds.h, struct.h, channel.c, list.c, map.c, opercmds.c,
  s_err.c, s_serv.c, s_user.c, s_misc.c: Add Isomers passivelag0-1.patch
  fixed minor bug in macros --Bleep
* channel.h, channel.c, s_user.c, s_debug.c, s_user.c:
  added Membership struct for channel associations, change user/channel
  lookups to use new struct. --Bleep
* channel.c, channel.h, s_user.c: cleanup channel and user code
  a bit, new function find_no_nickchange_channel --Bleep
* parse.c, m_defaults.c: added default handlers and hooked up new
  message handlers --Bleep
* *.c, struct.h: added Isomer's passivelag patch and, the second
  p10 patch --Bleep
* ircd_reply.[ch]: new files for commonly used replies --Bleep
* m_proto.[ch]: new file for protocol command support, needed for zip
  links --Bleep
* client.h, parse.c, msg.h: add code to support multiple message handlers
  depending on client status. --Bleep
* s_bsd.c, packet.c: code cleanup prep for zip links --Bleep
* channel.c, opercmds.c, ircd.c, s_serv.c, s_user.c, querycmds.c, 
  whocmds.c, whowas.c: Add Isomers p10ify patch, tokenize server to
  server commands --Bleep
* s_user.c (m_nick): killed goto --Bleep
* client.h, *.c: moved client stuff to client.h --Bleep
* version.c.SH, patchlevel.h, .patches: change version string
  generation, patch level is now set in patchlevel.h by simply
  bumping the number in the PATCHLEVEL string. --Bleep
* ircd_alloc.c, channel.c: fixup warnings in release build (NDEBUG)
  --Bleep
* fda.h, ircd_alloc.h, fda.c, ircd_alloc.c, fda_t.c: new files,
  runmalloc was core dumping on squits and unable to handle or
  detect double frees, the memory debug code can be disabled by
  compiling with NDEBUG defined --Bleep
* channel.c (remove_user_from_channel): refactor function --Bleep
* channel.c (m_kick): refactor function a bit, put all checks at top
  move code out to new function (make_zombie) --Bleep
* s_bsd.c (completed_connection): fixed stupid
  "Write error to blah: Socket not connected" bug --Bleep
* struct.h, send.h, send.c, s_bsd.c, IPcheck.c, s_user.c, *:
  More socket code cleanup, move file descriptor to local part of
  client struct, use cptr->error to handle the errno of any socket
  error, fix bug in IPcheck that ends up only disallowing every
  256th clone, Add more ipcheck forgiveness to s_user.c (needs work).
  Changed IPcheck_local_connect and IPcheck_connect_fail interfaces to
  use struct in_addrs instead of client structs to allow delaying the
  allocation of the client struct till after the check was done.
  Added can_send function to send.c (should be called before work is done
  but right now it's called just before trying to send (needs work))
* channel.c: Added Isomers netride2.patch, still needs a config option
  to turn it on (NO_INVITE_NETRIDE) --Bleep
* parse.c, msg.h: Added silent ignores for notices so connect progress
  messages do not cause connecting server to spew ERR_REGISTER_FIRST
  messages at the server it's connecting to. --Bleep
* s_serv.c, s_user.c, channel.c, send.c: Tokenised BURST, NICK,
  END_OF_BURST, EOB_ACK, PRIVMSG and NOTICE Server to Server.
  About 8-10% Bandwidth saving on BURSTS. --Gte
* channel.c (m_join): servjoin patch --Isomer
* ircd_osdep.h, os_*.c, s_bsd.c, send.c: more cleanups in socket code,
  use enumeration for IO results. --Bleep
* s_bsd.c: clean up select and poll code a bit more, fixed message pacing bug
  in poll. --Bleep
* supported.h, numeric.h, s_user.c, s_err.c: Added Isomers features
  patch. Use numeric 005 RPL_ISSUPPORT to convey server features to
  clients. --Bleep
* s_user.c (m_nick): IP differ patch, use IP address instead of host
  name to determine different user@host for nick collides. --Isomer
* hash.c (hChangeClient): Bug fix. Fixed bug that caused stale entries
  to be left in client hash table after a name change. Discovered by
  Quant and Isomer. --Bleep
* hash.c (hSeekClient): fixed bug I introduced when reversing my hash
  table code changes, thanks Quant and Isomer --Bleep
* opercmds.c (m_lusers): send limited luser info to remote
  clients --Isomer
* numeric.h, channel.c, s_err.c: Changed invite list numerics
  from 283/284 to 346/347 to match IRCnet numerics --Bleep
* config-sh.in, gline.h, numeric.h, gline.c, opercmds.c, s_debug.c, s_err.c:
  Add badchan patch by WildThang --Bleep
* config-sh.in, channel.h, numeric.h, channel.c, s_debug.c, s_err.c:
  Add lchanmode patch by David M --Bleep
* channel.c (cancel_mode): removed incorrect assert --Bleep
* *.c: removed P9 support, not everything is completely gone but most
  of it is, the server builds and connects to other servers, but thats
  as far as it's been tested so far. --Bleep
* ircd.h, ircd.c, s_bsd.c:
  removed BOOT_INETD/BOOT_CONSOLE code, unused non-functional --Bleep
* struct.h, ircd.h, ircd.c, s_user.c, s_bsd.c:
  removed BOOT_OPER/STAT_MASTER code, original patch by Isomer --Bleep
* s_user.c (m_nick): removed redundant check for acptr
* hash.c (hSeekClient, hSeekChannel): roll back some of hash.c changes
* hash.c (hSeekClient, hSeekChannel): removed unused variable from previous
   changes.
* hash.c (hSeekClient, hSeekChannel): fix compile error from status changes,
   fix logic bug that caused the first client that matched the mask to be
   returned regardless of whether or not it's name matched, this can result
   in wierd problems where the wrong server/client could be returned from the
   hash table lookup. Removed code that moved client to head of hash table
   chain for it's bucket when it's looked up, if the hash table is working
   reasonably well this just wastes cpu.
* hash.c, list.c: added code to zero out cptr->hnext when client removed
   from hash table, added assert for hnext == 0 in list.c to make sure that
   client was actually removed from the hash table before freeing it's memory.
* various: misc cleanups
* support.c: removed dead code
* configure.in: remove unneeded checks for minix, aix, ansi/posix headers
   these things are handled by porting layer code.
* res.c: remove calls to add_local_domain, these were causing incorrect
   behavior
* opercmds.c: cleanups in gline code
* s_bsd.c: increase socket buffers to 65535 for server connections
* crypt/mkpasswd.c: mutter correct runes to get file to compile without warnings
* gline.c, gline.h: add new files to attempt to encapsulate glines a bit,
   some code from opercmds.c needs to be moved here still
* opercmds.c (m_gline): fix local gline bug
* s_conf.c (initconf): add password change on rehash fix
* s_conf.c (rehash): fix rehash freeing and reloading the motd/rmotd files for
   every client connected.
* ircd_log.c: use 2K fixed buffer instead of vsnprintf, nothing we write to
   the log should ever exceed 512 bytes, but it doesn't hurt to be paranoid.
* res.c: change resolver timeouts to 5 seconds, per RFC1123
* channel.c: more little cleanups, no code changes
* channel.c: a) stops iterating over /invite list
    b) adds /invite to list the channels you're currently invited to.
    c) adds lotsa new numerics --Isomer
* ircd_signal.c, ircd.c: fix bug in signals
* channel.c (can_send) add Isomer's changes
* channel.c: add send_ban_list, cleanup a few names, reformat some parts to make
    more readable, fix bug introduced by name changes
* ircd_chattr.[ch]: add new macro for checking K:line time chars vs comments
* listener.c (show_ports): add code to show client/server and hidden status
* s_conf.c: bug fixes, cleanups, add code to set server port and hidden
    status for listeners (P:lines)
* s_conf.c (initconf): add interface selection code to P:lines so ports can
    be set on a single interface or multiple interfaces (multi-homed hosts)
* s_conf.c: rewrote C/N line code, removed N:lines entirely, clean up server
    conf line code.
* s_conf.c (check_server): move ip checks out of resolved or not so they can
    be checked for worse case situations on server connects
* res.c (resolver_read): add Isomer's debug info for failed resolver queries
* opercmds.c (m_stats): remove call to time(0) for each local client in 
    stats l command, use CurrentTime instead
* s_conf.c (initconf): only do lookups on C:lines instead of both C/N lines
* res.c: fix resolver hang bugs
* s_conf.c (rehash): remove extra semicolin that was causing c/n lines to
    accumulate
* s_conf.c (rehash): add portnum back to the listener list so we don't loose
    the server port on a rehash
* s_auth.c, listener.c: remove warnings for normal errors
* s_auth.c, listener.c: use osdep non-blocking calls instead of locals
* s_auth.c, listener.c: add code for non-blocking recovery for listeners and
    auth queries
* s_auth.c (auth_error): call IPcheck_connect_fail if the client socket dies
    during the auth check so the reference count doesn't get borked in the
    IPcheck code.
* numnicks.c: yet another extended numerics bug fix... sheesh
* s_bsd.c, s_conf.c: move conf line code from s_bsd.c to s_conf.c, cleanup
    cleanup check_server, check_client (still not completely tested, may be
    a bit buggy yet).
* parse.h, parse.c, s_debug.c: remove privmsg logging code
* numnicks.c (FindXNServer): fix off by one bug
* common.h, common.c: removed unused files
* s_bsd.c (net_connect_completed): new function, called after connection
    establishment for servers and clients, release reference count for
    the dns reply and set the socket buffer size to IRCD_READBUF_SIZE 
    for servers and 2K for clients.
* channel.c, crule.c: cleanup bogus casts
* listener.h (add_listener): fix bug that caused server a server port listener
    to think it was a client port listener.
* s_user.c, s_serv.c: release reference to dns_reply when connection is
    established.
* s_bsd.c (completed_connection): removed call to start_auth for connects
    the auth module expects connections not to be linked anywhere and owns
    the client struct until it's done.
* listener.c (release_listener): fix inverted assert client exit bug
* ircd_chattr.c: fix signed/unsigned warnings with Sun Workshop (+w)
* ircd_chattr.c, ircd_chattr.h: new files for character attributes and case
    translation, hopefully they will be a bit easier to maintain.
* s_conf.c (rehash): fixed logic bug that caused and infinite loop, 
    fix port update bug (needed to call mark_listeners_closing before initconf)
* *.c, runmalloc.[ch]: change the way the server deals with out of memory
    conditions. On server startup a no-memory handler is installed which
    calls server_restart if an allocation fails. Allocations are now checked
    in the memory allocation functions. Added asserts after every allocation
    to verify for debug.
* *.c *.h: move authentication and dns to authentication module rename a few
    globals, const correctness fixes, add ircd_string code, rework network
    code, use dns callbacks, removed a lot of redundant code 
* s_bsd.c: finish this stage of net code work
* *.c, *.h: rewrite select and poll code, add listener.[ch] net.code overhaul
    in progress, prepare for adding auth module
* s_bsd.h, struct.h: moved client struct macros back into struct.h for now,
    the last place they belonged was in the network code... feh
* ircd.c (open_debugfile): removed client for debug file
* ircd_string.h, ircd_string.c: new files for string processing, add
    ircd_strncpy function
* *.c, *.h: rename ircstp to ServerStats
* *.c, *.h: rename now to CurrentTime
* listener.h, listener.c: new files for listener ports
* include/ircd_defs.h: new file for global definitions (HOSTLEN, USERLEN)
* struct.h: add local_flag to client struct, to make local/remote detection simpler
* s_bsd.c (read_message): split out separate versions for select and poll
* s_bsd.h, various source files: remove the rest of the unix domain socket 
    support this removes a number of comparisons that were unneeded in 
    code that should run reasonably fast.
* os_*.c, res.c, ircd_osdep.h: add os_recvfrom_nonb for resolver
* os_*.c, s_bsd.c, s_auth.c, ircd_osdep.h: add os_get_sockname, os_get_peername
* bsd.h, bsd.c: merge into s_bsd
* ircd_osdep.h, os_generic.c, os_linux.c, ircd_osdep.h: move os variable stuff
    to separate compilation units, os generic contains the original code
    (start here). 
* s_bsd.c, send.c, struct.h: remove pyr (pyramid) finally
* res.h, res.c, s_misc.c: cleanup headers/dependencies in res.h
* match.h: include sys/types.h before netinet/in.h, broken BSD system headers
* ircd/Makefile.in: remove CFLAGS from link line, use LDFLAGS instead
* ircd.c: add missing include for sys/socket.h
* common.h (strChattr, strCasediff): remove pointless non-portable inline
    decls. The functions are complex enough that inlining just bloats the code
* ircd_xopen.h, ircd_xopen.c, s_user.c, s_serv.c: porting layer for crypt and
    other xopen library calls, moved crypt to ircd_xopen.
* s_uping.c, s_uping.h, s_bsd.c, s_misc.c, s_bsd.h, ircd.c, s_debug.c:
    Removed s_ping. There are much better tools available that actually work
    correctly. The s_ping code was a waste of resources, and has historically
    given incorrect results (it never worked correctly).
* ircd/s_bsd.c, res.c, s_user.c, s_serv.c: little fixups to allow code to
    build on Solaris, still have some warnings there.
    TODO: wrap crypt and things that depend on _XOPEN_SOURCE in their own
    file so it doesn't bother the network code.
* ircd/s_bsd.c: cast option arg to const char* for setsockopt (solaris)
* ircd/Makefile.in: removed hard coded dependencies for hash.o chkconfig.o,
    let the automatic stuff take care of it, it does it better than humans.
* *.c *.h: remove register keywords, attribute macro junk, cleanup
    dependencies, rename MIN and MAX to IRCD_MIN IRCD_MAX all headers in
    C files are sorted, removed as many duplicate includes as I could find
    (dozens) general cleanups. Mutter the correct runes to get the protoype
    for crypt included where it was needed.
* *.c *.h: dependency cleanups up to querycmds.c
* ircd.c, bsd.c, s_bsd.c: move signal handling code to ircd_signal.c
* ircd_signal.c, ircd_signal.h: new files, use only POSIX signals remove
    support for unreliable signals.
* *.h *.c: include guards, dependency cleanups
* Configure.in, setup-sh.in: include guards, config.h includes setup.h
    add config dir to include path
* sys.h: include guards, remove hard coded path to config.h
* s_user.c (hunt_server): fix logic bug
* numnicks.c (SetServerYXX): fix off by one error
* multiple files (n2k patch): add code to handle extended numerics
