Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / ChangeLog
index 074c5ca2d1636eaac8c84750f028fbc326e89405..df70ed1812fb37bd57f5cb4a78fd72dbbaf3ab22 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2000-12-04  Isomer <isomer@coders.net>
+       * ircd/m_names.c: Add NAMES_EON to do_names to say add a
+       'end_of_names' reply when done.
+       * ircd/m_join.c: use NAMES_EON as mentioned above
+
+2000-12-01  net  <simms@LUCIDA.QC.CA>
+
+       * ircd/motd.c: add a freelist for struct Motds
+
+2000-11-30  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_stats.c (report_feature_list): report features--only
+       local opers can see logging configuration, since it doesn't really
+       mean anything to users
+
+       * ircd/s_err.c: add reply messages for new feature subsystem
+
+       * ircd/s_conf.c: add F lines to .conf
+
+       * ircd/parse.c: add the message descriptions for /set, /reset, and
+       /get
+
+       * ircd/m_stats.c: add /stats f
+
+       * ircd/m_set.c (mo_set): implement /set
+
+       * ircd/m_reset.c (mo_reset): implement /reset
+
+       * ircd/m_rehash.c: /rehash m now flushes MOTD cache, and /rehash l
+       reopens log files (for log file rotation)
+
+       * ircd/m_get.c (mo_get): implement /get
+
+       * ircd/ircd_log.c: use int instead of void return value; add
+       log_report_features() and log_canon(); fix a function that
+       disappears if DEBUGMODE not #define'd
+
+       * ircd/ircd_features.c: functions to manipulate feature settings
+       either from the config file or with the new /set, /reset, and /get
+       commands
+
+       * ircd/Makefile.in: add new .c files, run make depend
+
+       * include/s_stats.h: declare report_feature_list() (/stats f
+       handler)
+
+       * include/numeric.h: add RPL_STATSFLINE, RPL_FEATURE,
+       ERR_NOFEATURE, ERR_BADLOGTYPE, ERR_BADLOGSYS, and ERR_BADLOGVALUE
+       reply numerics
+
+       * include/msg.h: add defines for SET, RESET, and GET
+
+       * include/ircd_log.h: add a function to canonicalize subsystem
+       names; change some void return values to int
+
+       * include/ircd_features.h: new features subsystem handles all the
+       manipulation of special features, like log files
+
+       * include/handlers.h: declare new mo_{s,res,g}et message handlers
+       for fiddling with features run-time
+
+       * include/client.h (SNO_DEFAULT): don't set SNO_DEBUG by default;
+       seemed like a good idea at the time...
+
+       * doc/example.conf: document new F lines
+
+2000-11-29  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_debug.c: rewrite debug_init() and vdebug() in terms of
+       new logging functions, which have special support for the debug
+       log; added loop detection to vdebug(), so that I can
+       sendto_opmask_butone() from log_vwrite() without incurring another
+       call to vdebug()
+
+       * ircd/s_conf.c (rehash): call log_reopen() from rehash routine;
+       this allows log file rotations
+
+       * ircd/m_kill.c: call log_write_kill() instead of ircd_log_kill()
+
+       * ircd/ircd_log.c: much more work fleshing out the interface;
+       removed old interface; included backwards-compat ircd_log()
+       function that logs to subsystem LS_OLDLOG
+
+       * ircd/ircd.c: switch to new log_init()/log_close()/log_reopen()
+       functions
+
+       * include/ircd_log.h: include stdarg.h for va_list; move ordering
+       warning to top of file; fill out LogSys enum; declare new
+       log_debug_init(), log_vwrite(), log_write_kill(), and
+       log_[sg]et_*() functions; add flags argument to log_write();
+       defined flags to inhibit various logging actions
+
+       * include/client.h: added support for new SNO_DEBUG, enabled only
+       if DEBUGMODE is defined
+
+2000-11-28  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/ircd_log.c: make sure the various LOG_* constants are
+       defined (probably not needed, since #include <syslog.h> isn't
+       conditional); various static data needed for the new logging
+       functions; definitions of new logging functions
+
+       * include/ircd_log.h: new LogSys enum, declarations for part of
+       new logging API
+
+       * ircd/motd.c: we were setting type to MOTD_CLASS unconditionally,
+       which was of course stupid; switched to using switch/case in
+       initialization in motd_create(); zero the MotdList.other pointer
+       from motd_clear()
+
+       * ircd/ircd.c (main): motd_init() has to come before init_conf(),
+       or we overwrite init_conf()'s hard work with respect to T-lines
+
+2000-11-27  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_stats.c: comment out report_motd_list and include a
+       reference to motd_report()
+
+       * ircd/s_conf.c: rip out the old MOTD manipulation functions; call
+       motd_add() from the conf parser; call motd_clear() from the rehash
+       routine; remove the no longer needed memory clearing and reloading
+       stuff from the rehash service routine
+
+       * ircd/motd.c: loads new API, including static internal functions
+       to do allocation/deallocation, etc.
+
+       * ircd/m_stats.c: use new motd_report() instead of
+       report_motd_list()
+
+       * ircd/m_motd.c: use new syntax for motd_send()
+
+       * ircd/ircd.c: use new motd_init() function
+
+       * ircd/Makefile.in (SRC): forgot to add motd.c to SRC in
+       Makefile.(in); also ran make depend
+
+       * include/motd.h: don't need config.h, but now do need time.h;
+       define new structures and constants; redefine old API and define
+       new functions
+
+2000-11-22  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_user.c (register_user): use motd_signon() instead of
+       calling m_motd; much cleaner this way
+
+       * ircd/motd.c: write the new motd_* stuff to make MOTD handling
+       less of a crock
+
+       * ircd/m_motd.c: rewrite m{,s}_motd to call out to new motd_*
+       functions
+
+       * include/motd.h: define new MOTD API stuff
+
+2000-11-20  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/ircd_reply.c (protocol_violation): rewrite
+       protocol_violation so it'll actually work
+
+       oh, yeah, use %s -> cptr->name, instead of %c -> cptr, so we get
+       the client's real name in there.
+
+       * ircd/m_motd.c (m_motd): Iso's addition of get_client_class(sptr)
+       resulted in core dumps if NODEFAULTMOTD is defined, because m_motd
+       gets called from register_user with a NULL sptr.  This is probably
+       a design problem, but this bandaid will do for now...
+
+2000-11-19  Isomer <isomer@coders.net>
+       * ircd/ircd_reply.c: added 'protocol_violation', thus alerting us
+       to problems in the server<->server protocol.
+
+       * ircd/m_connect.c: allow remote connects with a port of '0'
+       meaning to use the port in the config file.
+
+       * ircd/m_create.c: Enable hacking protection, lets see how far we
+       get.
+
+       * ircd/m_error.c: The RFC says never accept ERROR from unreg'd
+       clients, so we don't any more.
+
+       * ircd/m_kill.c: The kill path is now made up of numnicks of servers,
+       and the user@host is displayed of the victim.
+
+       * ircd/m_map.c: reloaded 'dump_map'.
+
+       * ircd/m_trace.c: allow per class T:
+
+       * ircd/m_stats.c: allow local opers /remote stats anywhere on the 'net.
+
+2000-11-17  Isomer <isomer@coders.net>
+
+       * ircd/m_topic.c: Fixed bug where we'd only send to clients topics
+       that were the *same* instead of different.  Oh the embarrasment!
+
+       * ircd/IPcheck.c: Merged net's fix.
+
+2000-11-02  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_whois.c: remove compiler warning by adding a newline to
+       end of file
+
+       * ircd/m_names.c: moved the flags up to s_user.h
+
+       * ircd/m_join.c: call do_names instead of m_names; restructure
+       ms_join to never transmute a JOIN into a CREATE, but use the TS in
+       the JOIN (if present) to timestamp the channel
+
+       * ircd/channel.c: send JOINs individually, instead of grouping
+       them, so that we can send the channel's creation time
+
+       * include/s_user.h: declare do_names()
+
+2000-10-30  Isomer <isomer@coders.net>
+       * ircd/m_oper.c: Fixed warning
+
+2000-10-30  Isomer <isomer@coders.net>
+       * ircd/m_oper.c: Fixed over agressive cut and no paste
+
+2000-10-30  Isomer <isomer@coders.net>
+
+       * ircd/m_topic.c: Restructured, fixed bug where topics on local
+       channels are propergated (I forget who pointed this out to me, but
+       thanks anyway).  Also to save bandwidth don't send the topic to
+       users if the topic is already the same on the server (but still
+       propergate to other servers).  X/W's "autotopic" feature must
+       chew a lot of bandwidth, hopefully this will help reduce this.
+
+       * doc/rfc1459.rfc: Updated documentation on /topic.
+
+       * ircd/listener.c: snotice warnings about failed accept()'s
+       potentially warning admins that they're running out of fd's.
+
+       * ircd/stats.c, ircd/class.c: Removed /stats v, added number of
+       people in a class in /stats y
+
+       * ircd/m_create.c: Checks for timewarp hacking and squit's
+       evil servers. (currently disabled)
+       
+
+2000-10-30  net <simms@lucida.qc.ca>
+       
+       * ircd/gline.c: Fixed various bugs Isomer left behind.
+
+2000-10-26  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_join.c (m_join): reply on attempt to join a BADCHANed
+       channel is now ERR_BANNEDFROMCHAN instead of ERR_BADCHANNAME
+
+2000-10-24  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/channel.c: ok, now last mode rules; mode +ps will always
+       result in +s (and won't send a mode if the channel is already +s);
+       mode +sp will always result in +p; -n+n on a +n channel results in
+       no mode change; -n+n on a -n channel results in a +n mode change;
+       etc.
+
+2000-10-23  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/channel.c: add "add" and "del" elements to ParseState to
+       avoid not-too-pretty -p+s when +s is sufficient; fix a bug in
+       mode_parse_limit that caused it to clear all channel modes
+       prematurely; restructure mode_parse_mode to avoid calling
+       modebuf_mode too early (ties in with first mentioned change);
+       better logic for +p/+s mutual exclusivity; initialize "add" and
+       "del" elements in mode_parse; send simple modes down to
+       modebuf_mode after the loop in mode_parse
+
+2000-09-28  Greg Sikorski <gte@atomicrevs.demon.co.uk>
+       * ircd/m_names.c: Fixed a non-lethal logic error that 
+       triggers an assert() in find_member_link while debugging.
+       (Spotted by Maniac-).
+2000-09-19  Thomas Helvey <helveytw@home.com>
+       * ircd/s_conf.c: move K:lines to their own list and data
+       structures, add supporting code.
+       * ircd/m_stats.c: cleanup stats processing a bit move
+       kline listing code to a new function, haven't figured
+       out where it goes yet tho'
+       * ircd/s_stats.c: added K:line bulk lister
+       * include/s_conf.h: added new DenyConf struct
+       * *[ch]: fixeup code that depended on changes
+
+2000-09-17  Thomas Helvey <helveytw@home.com>
+       * ircd/class.c: encapsulate class list
+       * include/class.h: clean up classes
+       * * fixup code that depended on changes
+
+2000-09-17  Thomas Helvey <helveytw@home.com>
+       * ircd/s_conf.c: add me to local conf
+       * include/s_conf.h: move CONF_ME macro to chkconf.c
+       * ircd/s_bsd.c: cleanup initialization, allow virtual host
+       to be changed by rehash
+
+2000-09-17  Thomas Helvey <helveytw@home.com>
+       * include/class.h: add missing prototype
+       * ircd/class.c: make argument to get_conf_class const
+
+2000-09-17  Thomas Helvey <helveytw@home.com>
+       * ircd/*.c: merged in changes from 2.10.10.pl12, cleanup
+       merge conflicts.
+       * ircd/*.h: merged in changes from 2.10.10.pl12, cleanup
+       merge conflicts
+
+2000-09-16  Thomas Helvey <helveytw@home.com>
+       * ircd/s_conf.c: add code for server struct
+       * ircd/client.c: copy of class.c sort of, new file for client
+       specific operations, will move things here as appropriate,
+       currently only one function is exported from here.
+       * ircd/*.c: general logic cleanups, convert negatives to
+       positives in places.
+
+2000-09-16  Thomas Helvey <helveytw@home.com>
+       * ircd/s_conf.c: add code for new crule data structs, strip quotes
+       * ircd/crule.c: clean up scary casting a bit, type safety stuff
+       * include/s_conf.h: add CRuleConf struct and support, remove
+       unused constants
+       * include/crule.h: type safety cleanups
+       * ircd/*.c: fixup code that depended on stuff I changed
+
+2000-09-15  Thomas Helvey <helveytw@home.com>
+       * ircd/s_conf.c: start adding code for new conf data structs, changed
+       listeners, admin line, motd lines, class lines. Move validate_hostent
+       to resolver. General mayhem.
+       * include/s_conf.h: new data structs and accessors
+       * ircd/res.c: move validate_hostent here, rewrite, use regular
+       expression for validation.
+       * doc/example.conf: update docs for port
+
+2000-09-14  Thomas Helvey <helveytw@home.com>
+       * ircd/s_conf.c (conf_init): rewrite conf file parser, start to break
+       up conf_init into managable chunks.
+       * ircd/listener.c (set_listener_mask): fix logic bug core dump.
+       * include/s_conf.h: add new data struct for local info (unwinding the mess).
+
+2000-09-13  Thomas Helvey <helveytw@home.com>
+       * ircd/list.c: put Clients in free lists, pre-allocate MAXCONNECTIONS
+       local clients.
+       * ircd/list.c: put SLinks in free lists
+       * ircd/channel.c: put Memberships in free lists
+       * ircd/ircd.c: rearrange initializations a bit in main
+       Note: With these changes, ircd NEVER frees Clients, SLinks or
+       Memberships. It will also rarely need to allocate new
+       ones during net bursts and other disruptions. This should
+       cut down on memory fragmentation a bit as well.
+
+2000-08-30  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_names.c (do_names): pull-up from do_names fix in
+       u2.10.10.pl11
+
+2000-07-15  Perry Lorier       <Isomer@coders.net>
+       * various: IP only k:'s and G:'s now do bit tests instead of two(!) 
+                 match()'s.  Major Major cpu savings.  Also speed up the
+                 other case slightly.  As a side effect you can now
+                k/Gline *@10.0.0.0/8.  I'll do bans tomorrow, it's nearing
+                3am.
+
+2000-07-15  Perry Lorier       <Isomer@coders.net>
+       * various: Fixed warnings after compiling on an alpha.
+2000-07-09  Perry Lorier       <Isomer@coders.net>
+       * doc/ircd.8: Applied grammitical changes by Liandrin, applied
+                     changes suggested by various other people.
+       * ircd/IPcheck.c: More bug fixes.  Current problem appears to be
+                       that it gets a corrupt entry somehow.
+2000-07-09  Greg Sikorski <gte@atomicrevs.demon.co.uk>
+       * ircd/m_oper.c: Clean up compiler warning.
+
+2000-07-08  Perry Lorier       <Isomer@coders.net>
+       * doc/ircd.8: Updated the documentation, it was slightly out of date
+                     being updated around 1989.
+       * ircd/m_whois.c: Rewrote for clarity, and probably a bit more speed.
+                         fixed a few minor glitches.
+       * doc/rfc1459.unet: Updated.
+       * ircd/IPcheck.c: Fixed more bugs.
+       * ircd/s_bsd.c: We now keep track of servers we've conected.
+
+2000-07-02  Perry Lorier       <Isomer@coders.net>
+       * ircd/s_misc.c: Fixed remote IPcheck bug.  Ok, I'm a moron, so sue
+                       me.  Thanks to Hektik, thanks thanks thanks thanks
+                       thanks thanks thanks thanks thank thanks thank thanks
+
+2000-07-01  Perry Lorier       <Isomer@coders.net>
+       * ircd/s_conf.c: "Fixed" the "bug" where people would "evade" K:'s.
+       * ircd/s_conf.c, include/IPcheck.h: Fixed compile warnings.
+
+2000-06-22  Perry Lorier       <Isomer@coders.net>
+       * ircd/IPcheck.c: Large chunks redone.
+       * ircd/s_conf.c: Changes due to IPcheck - ONE nolonger supported,
+                       single AND double digit limits are allowed now.
+       * misc other: Changes to IPcheck.
+
+2000-06-30  Perry Lorier       <Isomer@coders.net>
+       * ircd/ircd.c: Fix command line parameter bugs.
+
+2000-06-30  Perry Lorier       <Isomer@coders.net>
+       * ircd/m_kill.c: Fixed bug with LOCAL_KILL_ONLY
+       * ircd/m_nick.c: Tidied things up.
+
+2000-06-12 Joseph Bongaarts <foxxe@trms.com>
+       * ircd/m_stats.c: Iso forgot mo_stats when he added /stats v
+       
+2000-05-29  Perry Lorier       <Isomer@coders.net>
+       * ircd/m_stats.c: add /stats v to do only the last part of the /trace
+       * ircd/IPcheck.c: Cosmetic change, if we meddle with it enough do
+                       you think it'll get bored and fix itself?
+
+2000-06-09  Greg Sikorski <gte@atomicrevs.demon.co.uk>
+
+       * ircd/m_names.c: Clean up compiler warnings.
+
+2000-06-09  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/channel.c (mode_parse_client): don't send warning if
+       there's not enough arguments for a +/-o/v; means the habit of
+       doing "/mode #channel +oooooo bob" doesn't result in a bunch of
+       error messages
+
+2000-06-04  Greg Sikorski <gte@atomicrevs.demon.co.uk>
+
+       * ircd/m_names.c: Re-factor code to remove unneccessary
+       GlobalChannelList iteration every time someone joins a channel.
+
+2000-06-02  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_user.c: add struct Gline * argument to register_user;
+       look up global glines and repropagate them if necessary; send
+       acknowledgement of gline to remote servers when registering users
+
+       * ircd/s_serv.c (server_estab): don't send acknowledgement of
+       local glines to remote servers; do send gline acknowledgement of
+       bursted users
+
+       * ircd/m_user.c (m_user): pass new struct Gline * argument to
+       register_user
+
+       * ircd/m_pong.c: pass new struct Gline * argument to register_user
+
+       * ircd/m_nick.c (ms_nick): document protocol change
+
+       * ircd/gline.c: support GLINE_LASTMOD
+
+       * include/s_user.h: add struct Gline * argument to register_user
+
+       * include/gline.h: add GLINE_LASTMOD to look up non-zero lastmods
+
+       * ircd/s_conf.c (find_kill): add unsigned int argument to
+       gline_lookup()
+
+       * ircd/gline.c: add GLINE_GLOBAL to lookup or find only global
+       glines; add unsigned int argument to gline_lookup()
+
+       * include/gline.h: add GLINE_GLOBAL flag; add unsigned int
+       argument to gline_lookup()
+
+       * ircd/m_server.c: Resend jupe only when there is no %<lastmod>
+       parameter, or when it falls out of bounds: see comments prior to
+       call to jupe_resend(); call server_estab with struct Jupe
+       parameter, so that we place the appropriate %<lastmod> in the
+       appropriate place.
+
+       * ircd/s_serv.c (server_estab): send %<lastmod> for introduced
+       server, as well as for servers when we're sending the BURST
+
+       * include/s_serv.h: add a struct Jupe * to the arguments for
+       server_estab() so that we can send the appropriate lastmod
+       parameter
+
+       * ircd/m_gline.c (ms_gline): actually, this should be the
+       slightest bit more efficient...
+
+       * ircd/m_jupe.c (ms_jupe): actually, this should be the slightest
+       bit more efficient...
+
+       * ircd/m_gline.c (ms_gline): inhibit GLINE processing resends
+       during netburst
+
+       * ircd/m_jupe.c (ms_jupe): inhibit JUPE processing resends during
+       netburst
+
+       * ircd/channel.c (joinbuf_join): really remove user from local
+       channels
+
+2000-05-29  Perry Lorier       <Isomer@coders.net>
+       * ircd/m_names.c: Removed redundant space. 
+       * ircd/s_bsd.c: Fixed incorrect syntax on ERROR line.
+
+2000-05-18  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_burst.c (ms_burst): er...that should have been a ",", not
+       a " "
+
+2000-05-04  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/channel.c: replace bogus assertions with returns, which is
+       logically correct; only wipe out limit/key if they were originally
+       set in the first place; remove user from channel when doing a
+       PARTALL; only send MODE +o for user CREATEing channel if user is
+       not MyUser--CREATE will only be used if the channel did not
+       originally exist, therefore we can assume no one local is on the
+       channel anyway, and we don't exactly need for the user to see an
+       explicit +o for themselves
+
+       * doc/readme.gline: describe the syntax of the GLINE command
+
+       * doc/readme.jupe: update to reflect a couple of changes to JUPE
+
+       * ircd/gline.c: don't propagate local changes
+
+       * ircd/jupe.c: don't propagate local changes
+
+       * ircd/m_gline.c (mo_gline): force local flag when deactivating
+       glines with 0 lastmod
+
+       * ircd/gline.c (gline_deactivate): G-lines with zero lastmod time
+       are now removed instead of being deactivated
+
+       * ircd/m_gline.c (ms_gline): make G-lines of the form "GLINE *
+       -<mask>" be accepted
+
+       * ircd/channel.c (send_channel_modes): deal with one of the last
+       vestiges of sendbuf
+
+       * ircd/m_burst.c (ms_burst): debugged ban processing; removed
+       debugging hooks
+
+       * ircd/channel.c (modebuf_extract): remove debugging
+       sendto_opmask_butone calls
+
+2000-05-03  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/channel.c: support a couple of new flags to support using
+       mode_parse; fix some bugs with 0 struct ModeBuf *; implementation
+       of modebuf_extract to extract added flags for use by ms_burst
+
+       * include/channel.h: a couple of new flags to support using
+       mode_parse inside ms_burst
+
+       * ircd/m_burst.c (ms_burst): brand new implementation of BURST
+
+       * ircd/m_endburst.c: add loop to processing of end_of_burst to
+       free empty channels after the BURST is over.
+
+       * ircd/m_server.c: convert to use new send.c functions--I wanted
+       to rewrite it from scratch, but the logic's pretty complex; I may
+       still rewrite it, though...
+
+2000-05-02  Thomas Helvey <tomh@inxpress.net>
+
+       * ircd/ircd.c: fix broken header include ordering
+
+2000-05-02  Thomas Helvey <tomh@inxpress.net>
+       
+       * ircd/IPcheck.c: cleanups for ZenShadow's cleanups
+        review emailed privately
+
+       * include/IPcheck.h: removed unneeded include
+
+2000-05-02  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_user.c (hunt_server): throw in a comment so I know what
+       the sendto_one is for
+
+       * include/querycmds.h (Count_unknownbecomesclient): convert to
+       sendto_opmask_butone
+
+       * ircd/send.c: start removing dead code
+
+       * include/send.h: start removing dead code
+
+       * ircd/m_rping.c: convert to sendcmdto_one / send_reply /
+       hunt_server_cmd
+
+       * ircd/m_rpong.c: convert to sendcmdto_one / send_reply
+
+2000-05-01  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_stats.c: convert to sendcmdto_one / send_reply
+
+       * ircd/m_kick.c: Completely reimplement m_kick
+
+       * ircd/channel.c: send_user_joins removed; it was dead code,
+       anyway...
+
+2000-05-01  Perry Lorier <isomer@coders.net>
+       * ircd/m_invite.c: Fix for the rest of m_invite.c, and again.
+       * ircd/channels.c: My fix for the part problem.  Untested, probably
+               won't work.  Can't be much worse than the current problem.
+               it'll either work or core, take your pick.
+
+
+2000-04-30  Perry Lorier <isomer@coders.net>
+       * config/config-sh.in: Fix for CONNEXIT
+       * ircd/s_{user,misc}.c: Fix for CONNEXIT
+       * ircd/m_invite.c: Fix for incorrectly numnickified invite.
+                       (Kev: Want to come talk to me about this?)
+
+2000-04-30  Steven M. Doyle <steven@doyle.net>
+       * ircd/ircd.c
+         - general cleanups and readability enhancements
+         - rewrite of setuid/chroot code.
+         - server will no longer run as root
+         - -DPROFIL compile option removed
+         - Fixed IPcheck API calls
+       * config/config-sh.in
+         - Fixed up chroot compile options
+         - Added options for debug and profile compiles
+       * config/gen.ircd.Makefile
+         - Support for new debug/profile options
+       * ircd/Makefile.in
+         - Support for new debug/profile options
+       * ircd/ircd_signal.c
+         - Removed -DPROFIL
+
+       * include/IPcheck.h
+         - Removed old API prototypes, added new ones
+       
+       * ircd/IPcheck.c
+         - Readability cleanups (well, I -think-...)
+         - Changed IPRegistryEntry.last_connect to a time_t.  The previously
+           used unsigned short was probably causing interesting things after
+           a client had been connected longer than about 65,535 seconds...
+         - Removed old API functions.
+
+       * ircd/whocmds.c
+         - Removed IPcheck.h include
+       
+       * Additionally modified IPcheck API calls in:
+         - ircd/m_nick.c
+         - ircd/m_auth.c
+         - ircd/s_bsd.c
+         - ircd/s_conf.c
+         - ircd/s_misc.c
+         - ircd/s_serv.c
+         - ircd/s_user.c
+       
+       
+2000-04-30  Perry Lorier <isomer@coders.net>
+       * ircd/s_bsd.c: Sigh. :)
+        * ircd/m_mode.c: fix for modeless channels by poptix.
+
+2000-04-29  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_join.c: reimplement JOIN in terms of struct JoinBuf
+
+       * ircd/channel.c (clean_channelname): make clean_channelname also
+       truncate long channel names
+
+2000-04-28  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_create.c: reimplement CREATE in terms of struct JoinBuf
+
+       * ircd/channel.c: implemented joinbuf_init, joinbuf_join,
+       joinbuf_flush
+
+       * include/channel.h: definitions and declarations for the struct
+       JoinBuf abstraction
+
+2000-04-29  Perry Lorier <isomer@coders.net>
+       * ircd/s_bsd.c: Ok, so I thought I compiled and tested this...
+
+2000-04-29  Perry Lorier <isomer@coders.net>
+       * ircd/s_bsd.c: Add debugging code to IPcheck
+
+2000-04-28  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * include/ircd_reply.h (SND_EXPLICIT): use instead of RPL_EXPLICIT
+
+       * ircd/ircd_reply.c (send_reply): use SND_EXPLICIT instead of
+       RPL_EXPLICIT
+
+       * ircd/m_userhost.c (m_userhost): add a dead code comment
+
+       * ircd/m_desynch.c: forgot one...
+
+       * ircd/m_rehash.c (mo_rehash): er, duplicates :)
+
+       * ircd/m_proto.c (proto_send_supported): just change a comment so
+       it doesn't show up in my scans
+
+       * ircd/ircd_reply.c (send_reply): fix a slight bug...
+
+       * ircd/s_numeric.c (do_numeric): use new sendcmdto_* functions,
+       kinda hackish...
+
+       * ircd/parse.c (parse_server): argument wrangling to make
+       processing in do_numeric a little easier to deal with
+
+       * ircd/s_serv.c (server_estab): SERVER should come from
+       acptr->serv->up, not &me
+
+       * ircd/m_lusers.c: accidentally left out sptr for a %C
+
+       * ircd/send.c: hack to support doing wallchops...
+
+       * ircd/m_whowas.c: convert to new send functions
+
+       * ircd/m_whois.c: convert to new send functions
+
+       * ircd/m_who.c: convert to new send functions
+
+       * ircd/m_wallops.c: convert to new send functions
+
+       * ircd/m_wallchops.c: convert to new send functions
+
+       * ircd/m_version.c: convert to new send functions
+
+       * ircd/m_userip.c: convert to new send functions
+
+       * ircd/m_userhost.c: convert to new send functions
+
+       * ircd/m_uping.c: convert to new send functions
+
+       * ircd/m_trace.c: convert to new send functions
+
+       * ircd/m_topic.c: convert to new send functions
+
+       * ircd/m_time.c: convert to new send functions
+
+       * ircd/m_squit.c: convert to new send functions
+
+       * ircd/m_silence.c: convert to new send functions
+
+       * ircd/m_settime.c: convert to new send functions
+
+       * ircd/m_restart.c: convert to new send functions
+
+       * ircd/m_rehash.c: convert to new send functions
+
+       * ircd/m_privmsg.c: convert to new send functions
+
+       * ircd/m_pong.c: convert to new send functions
+
+       * ircd/m_ping.c: convert to new send functions
+
+       * ircd/m_pass.c: convert to new send functions
+
+       * ircd/m_opmode.c: convert to new send functions
+
+       * ircd/m_oper.c: convert to new send functions
+
+       * ircd/m_notice.c: convert to new send functions
+
+       * ircd/m_nick.c: convert to new send functions
+
+       * ircd/m_names.c: convert to new send functions
+
+       * ircd/m_motd.c: convert to new send functions
+
+       * ircd/m_mode.c: convert to new send functions
+
+       * ircd/m_map.c: convert to new send functions
+
+       * ircd/m_lusers.c: convert to new send functions
+
+       * ircd/m_list.c: convert to new send functions
+
+       * ircd/m_links.c: convert to new send functions
+
+       * ircd/m_kill.c: convert to new send functions
+
+       * ircd/m_jupe.c: convert to new send functions
+
+       * ircd/m_invite.c: convert to new send functions
+
+       * ircd/m_info.c: convert to new send functions
+
+       * ircd/m_help.c: convert to new send functions
+
+       * ircd/m_gline.c: convert to new send functions
+
+       * ircd/m_error.c: convert to new send functions
+
+       * ircd/m_endburst.c: convert to new send functions
+
+       * ircd/m_die.c: convert to new send functions
+
+       * ircd/m_destruct.c: convert to new send functions
+
+       * ircd/m_defaults.c: convert to new send functions
+
+       * ircd/m_connect.c: convert to new send functions
+
+2000-04-28  Perry Lorier <isomer@coders.net>
+       * RELEASE.NOTES: Describe a few more undocumented features.
+       * config/config-sh.in: change the default paths for logging
+       and the recommended number of channels.
+       * include/supported.h: Rearrange slightly, added CHANTYPE's
+
+2000-04-27  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_close.c: convert to send_reply
+
+       * ircd/m_clearmode.c: convert to send_reply, sendcmdto_serv_butone
+
+       * ircd/m_away.c: convert to send_reply and sendcmdto_serv_butone
+
+       * ircd/m_admin.c: convert to send_reply and hunt_server_cmd
+
+       * ircd/s_user.c (hunt_server_cmd): new hunt_server replacement
+       that takes cmd and tok arguments, etc.  NOTE: THIS IMPLEMENTATION
+       HAS A MAJOR HACK!!!  The whole hunt_server architecture should be
+       carefully rethought...
+
+       * ircd/s_stats.c (hunt_stats): use new hunt_server_cmd
+
+       * include/s_user.h: hunt_server_cmd -- replacement for hunt_server
+
+       * ircd/s_misc.c: *sigh* 2.10.10 doesn't support squitting by
+       numeric nick; therefore, we have to use the server name
+
+       * ircd/m_squit.c (ms_squit): allow to squit by server numeric nick
+
+       * ircd/send.c: fix minor bugs
+
+       * ircd/s_user.c (check_target_limit): mark dead code so I filter
+       it when I grep
+
+       * ircd/s_serv.c (exit_new_server): mark dead code so I filter it
+       when I grep
+
+       * ircd/parse.c: mark dead code so I filter it when I grep
+
+       * ircd/map.c: mark dead code so I filter it when I grep
+
+       * ircd/ircd.c: mark dead code so I filter it when I grep
+
+       * ircd/ircd_relay.c: convert over to new sendcmdto_*, send_reply
+       functions
+
+       * ircd/channel.c: mark dead code so I filter it when I grep
+
+       * ircd/s_stats.c: use send_reply instead of sendto_one w/rpl_str;
+       hope I'm not stepping on toes...
+
+       * ircd/s_conf.c: more sendto_opmask_butone / send_reply
+       conversions; use ircd_snprintf in a couple of cases to negate the
+       possibility of buffer overflow
+
+2000-04-26  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/channel.c: convert as much as possible to new send
+       semantics
+
+       * ircd/send.c (sendcmdto_common_channels): fix a subtle bug --
+       test member->user->from->fd, not from->fd
+
+       * ircd/gline.c (gline_add): go ahead and add badchans; we just
+       won't look for them in m_gline; this way, they always work...
+
+       * ircd/jupe.c: use ircd_vsnprintf conversion specifiers
+
+       * ircd/gline.c: since write_log now uses ircd_vsnprintf, use
+       ircd_vsnprintf conversion specifiers
+
+       * ircd/support.c (write_log): use ircd_vsnprintf for write_log, so
+       I have my conversion specifiers
+
+       * ircd/gline.c (do_gline): use send_reply for ERR_YOUREBANNEDCREEP
+
+       * ircd/send.c (sendcmdto_flag_butone): explicitly send WALLOPS to
+       local users
+
+       * ircd/s_serv.c (exit_new_server): rewrite exit_new_server to be a
+       little less brain-dead
+
+       * ircd/s_misc.c: use sendcmdto_one, sendrawto_one, and send_reply
+
+       * ircd/s_debug.c: use send_reply with RPL_EXPLICIT for
+       RPL_STATSDEBUG
+
+       * ircd/res.c (cres_mem): use send_reply with RPL_EXPLICIT for
+       RPL_STATSDEBUG
+
+       * ircd/list.c (send_listinfo): use send_reply with RPL_EXPLICIT
+       for RPL_STATSDEBUG
+
+       * ircd/m_pong.c: use RPL_EXPLICIT for ERR_BADPING
+
+       * ircd/ircd.c: use RPL_EXPLICIT for ERR_BADPING
+
+       * ircd/s_user.c (register_user): use RPL_EXPLICIT for
+       ERR_INVALIDUSERNAME
+
+       * ircd/ircd_reply.c (send_reply): support RPL_EXPLICIT
+
+       * include/ircd_reply.h (RPL_EXPLICIT): somewhat of a hack to mark
+       a numeric as needing to use an explicit pattern, which will be the
+       first argument in the variable argument list
+
+       * ircd/s_user.c: use sendrawto_one instead of sendto_one to send
+       non-prefixed nospoof PING
+
+       * ircd/s_bsd.c: use sendrawto_one instead of sendto_one to send
+       non-prefixed SERVER login
+
+       * ircd/ircd.c (check_pings): fix last sendto_one calls (except for
+       a numeric usage further up)
+
+       * include/send.h: declare sendrawto_one
+
+       * ircd/send.c (sendrawto_one): new function to use ONLY for
+       non-prefixed commands, like PING to client, or PASS/SERVER on
+       server registration
+
+2000-04-25  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/ircd_snprintf.c (doprintf): implement %H for possible
+       future expansion (channel numerics?)
+
+       * include/ircd_snprintf.h: added documentation to # to explain use
+       with %C; added documentation for : to explain use with %C; added
+       documentation for %H for channels
+
+       * ircd/whocmds.c: use send_reply
+
+       * ircd/userload.c: use sendcmdto_one
+
+       * ircd/uping.c: use sendcmdto_one
+
+       * ircd/send.c: use new flags to %C format string; ':' prefixes
+       client name with a colon for local connects, '#' uses
+       nick!user@host form for local connects
+
+       * ircd/s_user.c: use send_reply, sendto_opmask_butone,
+       sendcmdto_one, sendcmdto_serv_butone, sendcmdto_flag_butone
+
+       * ircd/s_serv.c: use sendcmdto_one, sendto_opmask_butone
+
+       * ircd/s_bsd.c: use sendto_opmask_butone, send_reply,
+       sendcmdto_one
+
+       * ircd/s_auth.c: use sendto_opmask_butone
+
+       * ircd/res.c: use sendcmdto_one
+
+       * ircd/ircd_snprintf.c (doprintf): minor bug fixes and some
+       debugging assertions
+
+2000-04-24  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/support.c: dumpcore is no longer used, so get rid of it
+
+       * ircd/parse.c: use send_reply, sendcmdto_one
+
+       * ircd/map.c: use send_reply
+
+       * ircd/listener.c: use send_reply
+
+       * ircd/jupe.c: use sendto_opmask_butone, send_reply
+
+       * ircd/ircd_reply.c: use send_reply
+
+       * ircd/ircd.c: use sendto_opmask_butone
+
+       * ircd/gline.c: use sendto_opmask_butone, send_reply
+
+       * ircd/ircd_snprintf.c (doprintf): make it deal with incompletely
+       registered clients; make FLAG_ALT print nick!user@host; make
+       FLAG_COLON print :blah
+
+       * ircd/class.c (report_classes): use send_reply instead of
+       sendto_one
+
+       * ircd/hash.c (m_hash): replace sendto_one with sendcmdto_one
+
+       * ircd/IPcheck.c (ip_registry_connect_succeeded): replace
+       sendto_one with sendcmdto_one
+
+2000-04-21  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/send.c: clean up logic in sendcmdto_channel_butone; use
+       MyConnect() instead of IsServer() in sendcmdto_flag_butone; define
+       sendcmdto_match_butone
+
+       * include/send.h: declare sendcmdto_match_butone
+
+2000-04-20  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/jupe.c: update to use send_reply()
+
+       * ircd/gline.c: update to use send_reply()
+
+       * include/ircd_reply.h: declare send_reply
+
+       * ircd/ircd_reply.c (send_reply): send_error_to_client, but for
+       replies; uses ircd_snprintf
+
+       * ircd/send.c: added comments to redirect searchers to appropriate
+       sendcmdto_* function; moved new functions to end of file; added
+       explanatory comments; reordered arguments; defined new functions
+       mentioned below
+
+       * ircd/m_jupe.c: reorder arguments to sendcmdto_* functions
+
+       * ircd/m_gline.c: reorder arguments to sendcmdto_* functions
+
+       * ircd/jupe.c: reorder arguments to sendcmdto_* functions
+
+       * ircd/gline.c: reorder arguments to sendcmdto_* functions
+
+       * include/send.h: reorder arguments, add explanatory comments,
+       declare new functions sendcmdto_flag_butone, sendto_opmask_butone,
+       and vsendto_opmask_butone
+
+2000-04-19  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/send.c: define sendcmdto_channel_butone, wrote a simplified
+       vsendto_op_mask that uses '*' instead of the receiving client
+       nickname
+
+       * include/send.h: declare sendcmdto_channel_butone; takes a skip
+       argument that allows you to skip (or not to skip) deaf users,
+       users behind bursting servers, and non channel operators
+
+2000-04-17  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/send.c: new sendcmdto_channel_butserv -- note that old
+       sendto_channel_butserv has a subtle bug; also wrote
+       sendcmdto_common_channels.
+
+       * include/send.h: declare new sendcmdto_* functions
+
+       * ircd/jupe.c: support local deactivations of jupes
+
+       * ircd/gline.c: support local deactivations of glines
+
+       * include/jupe.h: JUPE_LDEACT allows jupes to be locally
+       deactivated; if they aren't locally deactivated, then it slaves to
+       the net-wide activation status; JupeIsRemActive() tests only
+       whether the jupe is active everywhere else
+
+       * include/gline.h: GLINE_LDEACT allows glines to be locally
+       deactivated; if they aren't locally deactivated, then it slaves to
+       the net-wide activation status; GlineIsRemActive() tests only
+       whether the gline is active everywhere else
+
+       * ircd/gline.c: detect overlapping G-lines; if an existing, wider
+       gline expires after the new one will, we drop the new one,
+       otherwise we add the G-line after that one (so the wide one will
+       apply first); if the new one contains an existing G-line and if it
+       will expire after the existing one, we drop the existing one to
+       save memory
+
+       * ircd/m_gline.c (mo_gline): opers could issue remote local
+       glines when CONFIG_OPERCMDS was off; fixed
+
 2000-04-16  Kevin L. Mitchell  <klmitch@mit.edu>
 
+       * ircd/m_jupe.c (mo_jupe): allow target argument to be dropped if
+       this is a local JUPE
+
        * ircd/gline.c: add flags argument to gline_activate and
        gline_deactivate for future expansion
 
 * Merge in u2_10_10_beta06 changes --Bleep
 * Start ircu2.10.11 development, beta branch u2_10_10 --Bleep
 #-----------------------------------------------------------------------------
-#
-# ChangeLog for ircu2.10.11
-#
-# $Id: ChangeLog,v 1.91 2000-04-16 05:12:01 kev Exp $
-#
-# Insert new changes at beginning of the change list.
-#