+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