+2001-01-02 Perry Lorier <isomer@coders.net>
+ * ircd/s_err.c: Added third param to 004 - the channel modes that tage params. Used by hybrid/epic.
+ * ircd/s_channels.c: Added fix for msg'ing a -n+m channel - thanks
+ to guppy for noticing, and hektik for providing the fix.
+ * misc others: Minor cleanups, added more protocol_violations, ripped
+ out more P09 stuffs, bit more protocol neg stuff.
+
+2000-12-19 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_ison.c (m_ison): Dianora says that ISON has to end with a
+ space (*sigh* stupid clients...)
+
+ * ircd/s_user.c: make WALLOPS_OPER_ONLY a feature managed through
+ ircd_features.[ch]
+
+ * ircd/s_err.c: get rid of GODMODE conditionals
+
+ * ircd/s_debug.c (debug_serveropts): switch to using appropriate
+ calls into the features subsystem for various serveropts
+ characters
+
+ * ircd/s_conf.c (find_conf_entry): get rid of USEONE conditional
+
+ * ircd/s_bsd.c: remove GODMODE conditional; use features subsystem
+ to get value of VIRTUAL_HOST and CLIENT_FLOOD; remove
+ NOFLOWCONTROL conditional
+
+ * ircd/s_auth.c: use features subsystem to determine value of
+ KILL_IPMISMATCH
+
+ * ircd/parse.c: get rid of NOOPER and GODMODE conditionals; use
+ features subsystem to determine the setting of IDLE_FROM_MSG
+
+ * ircd/numnicks.c: get rid of EXTENDED_NUMERICS conditionals
+
+ * ircd/motd.c: get value of NODEFAULTMOTD from features subsystem;
+ use features subsystem to get motd file names
+
+ * ircd/m_settime.c: get value of RELIABLE_CLOCK from features
+ subsystem
+
+ * ircd/m_server.c: get rid of CRYPT_LINK_PASSWORD, since it does
+ us no good; use features subsystem to figure out if we need to do
+ HUB-type stuff; make TESTNET debugging sendto_opmask_butone's use
+ the Debug(()) macro instead; get value of RELIABLE_CLOCK from
+ features subsystem
+
+ * ircd/m_privmsg.c: get IDLE_FROM_MSG from the features subsystem
+
+ * ircd/m_oper.c: get CRYPT_OPER_PASSWORD from the features
+ subsystem
+
+ * ircd/m_connect.c: get SERVER_PORT from the features subsystem
+
+ * ircd/ircd_log.c (log_set_file): fix a bug that kept log files
+ from getting marked if they were already set to something...
+
+ * ircd/ircd_features.c: add a flag to indicates read-only access;
+ add several new features that used to be compile-time selected
+
+ * ircd/ircd.c: grab pidfile out of feature subsystem; don't check
+ access to motd files (what the heck?); make sure to initialize the
+ feature subsystem before trying to write the config file
+
+ * ircd/dbuf.c: use feature_int() to retrieve BUFFERPOOL settings;
+ use feature_bool() to figure out if we're using the FERGUSON
+ flusher
+
+ * ircd/Makefile.in: MPATH and RPATH are now done differently, so
+ remove the clause that creates empty files of that name; also ran
+ make depend
+
+ * include/sys.h: CLIENT_FLOOD is now a feature; unfortunately,
+ there is no easy way to bounds-check it at present
+
+ * include/querycmds.h: make sure ircd_features.h is included; use
+ feature_str(FEAT_DOMAINNAME) in calls to match()
+
+ * include/ircd_features.h: many new features that used to be
+ compile-time selected
+
+ * config/config-sh.in: add * to DOMAINNAME; try also using first
+ argument to search in /etc/resolv.conf; removed many compile-time
+ options that now can be configured through the features system
+
+2000-12-18 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * doc/api/log.txt: how to use the logging API
+
+ * doc/api/features.txt: how to use the features API
+
+ * doc/api/api.txt: how to write API documentation
+
+ * include/ircd_features.h: rearranged a couple of features for
+ neatness purposes
+
+ * ircd/ircd_features.c: cleaned up the macros some; rearranged
+ some code to all go into the switch; rearranged a couple of
+ features for neatness purposes
+
+2000-12-16 Greg Sikorski <gte@atomicrevs.demon.co.uk>
+ * ircd/os_bsd.c: Added os_set_tos for BSD users.
+
+2000-12-16 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/ircd_features.c: Isomer almost got it right; you need to
+ use F_I(), since it's an integer value, not a boolean value. The
+ asserts in feature_int would catch you out... Also made the F_*
+ macros take flags
+
+ * ircd/s_err.c: define RPL_PRIVS reply
+
+ * ircd/parse.c: put new PRIVS command into command table
+
+ * ircd/m_privs.c (mo_privs): message handler to report operator
+ privileges
+
+ * ircd/ircd_features.c: declare new features OPER_SET and
+ LOCOP_SET; redo boolean testing routine to accept TRUE, YES, and
+ ON for boolean TRUE, and FALSE, NO, and OFF for boolean FALSE
+
+ * ircd/client.c: simplify client_set_privs() with a table that
+ defines what features to test for; add new client_report_privs()
+
+ * ircd/Makefile.in: compile new m_privs.c; run make depend
+
+ * include/numeric.h (RPL_PRIVS): new reply numeric for displaying
+ an operator's privileges
+
+ * include/msg.h: define new command: PRIVS
+
+ * include/ircd_features.h: create new features OPER_SET and
+ LOCOP_SET for controlling access to /set
+
+ * include/handlers.h (mo_privs): declare message handler for
+ reporting oper privileges
+
+ * include/client.h (client_report_privs): declare function to
+ report what privileges an oper has
+
+ * ircd/m_whois.c (do_whois): fix a bug that caused /whois to
+ report that a user is an oper if the oper doing the /whois had
+ PRIV_SEE_OPERS
+
+2000-12-17 Isomer <Isomer@coders.net>
+ * ircd/listener.c: added support for TOS twiddling as a 'feature'.
+
+2000-12-17 Isomer <Isomer@coders.net>
+ * ircd/os_linux.c: add TOS stuffs
+
+ * ircd/listener.c: add TOS stuffs
+
+2000-12-16 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/whocmds.c (do_who): use HasPriv to determine whether or not
+ to indicate a user is an oper
+
+ * ircd/s_user.c: clear privileges setting when deopping; don't
+ propagate +o unless user has PRIV_PROPAGATE privilege
+
+ * ircd/s_debug.c (debug_serveropts): created debug_serveropts()
+ function and replaced how the server option string is generated
+
+ * ircd/parse.c: remove conditional on CONFIG_OPERCMDS
+
+ * ircd/m_whois.c (do_whois): use HasPriv to determine whether or
+ not to indicate the user is an operator
+
+ * ircd/m_who.c: use HasPriv to determine whether or not a user
+ should be displayed in the list of opers
+
+ * ircd/m_version.c: call debug_serveropts() to get server option
+ string
+
+ * ircd/m_userip.c (userip_formatter): use HasPriv to determine
+ whether or not to show oper status
+
+ * ircd/m_userhost.c (userhost_formatter): use HasPriv to determine
+ whether or not to show oper status
+
+ * ircd/m_restart.c (mo_restart): replace ugly #ifdef conditional
+ checks with HasPriv check; remove dead code
+
+ * ircd/m_rehash.c (mo_rehash): replace ugly #ifdef conditional
+ checks with HasPriv check
+
+ * ircd/m_opmode.c (mo_opmode): use HasPriv to check permissions;
+ use feature_bool to check if disabled
+
+ * ircd/m_oper.c (m_oper): set oper priviliges
+
+ * ircd/m_mode.c (m_mode): replace #ifdef conditional with HasPriv
+ check
+
+ * ircd/m_kill.c (mo_kill): use HasPriv checks to determine if we
+ can kill
+
+ * ircd/m_kick.c (m_kick): replace #ifdef conditional with HasPriv
+ check
+
+ * ircd/m_jupe.c (mo_jupe): rework permissions checking structure;
+ use feature_bool to check if disabled
+
+ * ircd/m_join.c (m_join): remove BADCHAN conditional; replace
+ #ifdef conditional with a HasPriv check
+
+ * ircd/m_gline.c (mo_gline): rework permissions checking
+ structure; use feature_bool to check if any part is disabled
+
+ * ircd/m_die.c: replace ugly #ifdef conditionals with HasPriv
+ check; remove dead code
+
+ * ircd/m_clearmode.c: use feature_bool() to detect if we're
+ disabled; use HasPriv to figure out what we're permitted to do;
+ only allow clearmode on moded channels
+
+ * ircd/ircd_features.c: define various features; use HasPriv to
+ verify permissions to set/reset
+
+ * ircd/gline.c (gline_add): use HasPriv instead of #ifdef
+ conditionals
+
+ * ircd/client.c (client_set_privs): function to set an oper's
+ privileges
+
+ * ircd/channel.c: use HasPriv calls instead of #ifdef conditionals
+
+ * include/whocmds.h: deconditionalize several macros and
+ substitute appropriate calls to HasPriv()
+
+ * include/s_debug.h: get rid of global serveropts[]; define new
+ function debug_serveropts() to build that string on the fly
+
+ * include/ircd_features.h: define some features
+
+ * include/client.h: add privs member to struct Connection; define
+ various priviledges
+
+ * include/channel.h: no longer using IsOperOnLocalChannel; remove
+ conditional of MAGIC_OPER_OVERRIDE on OPER_WALK_THROUGH_LMODES
+
+ * doc/Configure.help: remove help information for deprecated
+ options
+
+ * config/config-sh.in: remove certain deprecated options having to
+ do with what opers can and cannot do--first stage in moving
+ compile-time constants into the .conf
+
+2000-12-16 Isomer <Isomer@coders.net>
+ * ircd/parse.c: detect if the prefix is missing and try and recover
+ instead of coring.
+
+2000-12-15 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/ircd_log.c: found and fixed some bugs in the debug logging
+ code that would sometimes result in the log file not being
+ reopened--which meant that a user could connect and get the
+ logging output--oops
+
+ * ircd/Makefile.in: run make depend...
+
+ * ircd/s_stats.c: get rid of report_feature_list()
+
+ * ircd/s_err.c: add the 'bad value' error message, shift error
+ messages over somewhat
+
+ * ircd/s_debug.c (debug_init): call log_debug_init with the
+ use_tty flag
+
+ * ircd/s_conf.c (read_configuration_file): unmark features before
+ reading the config file, then reset unmarked features after
+ reading the config file
+
+ * ircd/m_stats.c: use feature_report() instead of
+ report_feature_list()
+
+ * ircd/ircd_log.c: fix log_debug_file (bogus assertion); add
+ special 'mark' flags and use them; add the stuff needed by the
+ features API
+
+ * ircd/ircd_features.c: rework the features API and add gobs of
+ comments to try to explain what some of these complex functions
+ are actually doing
+
+ * include/s_stats.h: get rid of report_feature_list(); use
+ feature_report() instead
+
+ * include/numeric.h: added a new error message and shifted old
+ values over some--this is, after all, an alpha
+
+ * include/ircd_log.h: log_debug_init now takes an integer to tell
+ it if it should be using the tty; added a couple of functions
+ required by the features API
+
+ * include/ircd_features.h: add an enum and some more functions to
+ flesh out the feature API--it should now be possible to put all
+ those compile-time constants in the config file!
+
+ * ircd/send.c: got the direction of the assert incorrect...
+
+ * ircd/send.c: implement the efficiency of flush_connections by
+ creating a linked list of struct Connection's with queued data;
+ also get rid of flush_sendq_except and make sure to yank
+ connections out of the list when their sendQs become empty (notice
+ the assertion in flush_connections!)
+
+ * ircd/s_bsd.c (close_connection): must yank the Connection out of
+ the sendq list
+
+ * ircd/list.c (dealloc_connection): must yank the Connection out
+ of the sendq list
+
+ * ircd/dbuf.c (dbuf_put): call flush_connections instead of the
+ deprecated flush_sendq_except
+
+ * ircd/client.c: define a couple new helper functions for sendq
+ threading--this will make the flush_connections function in send.c
+ considerably more efficient by creating a linked list of
+ Connections that have queued data to send
+
+ * include/send.h: remove flush_sendq_except, as it's not used
+ anymore
+
+ * include/client.h: declare a couple new helper functions for the
+ sendq threading system
+
+2000-12-14 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_ison.c (m_ison): Apply Diane Bruce's patch to make ISON
+ parse all arguments
+
+ * ircd/s_debug.c (count_memory): modify to report for clients and
+ connections, not local clients and remote clients
+
+ * ircd/list.c: fiddle with the client-fiddling functions to take
+ into account the divorce of struct Connection from struct Client
+
+ * ircd/ircd.c: define a struct Connection for me, initialize it,
+ and link it into the right place (ewww, globals!)
+
+ * include/client.h: remove CLIENT_{LOCAL,REMOTE}_SIZE; split
+ struct Client into struct Client and struct Connection; redefine
+ local-portion accessor macros to go through struct Client to the
+ struct Connection; define struct Connection accessor macros
+
+2000-12-13 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/whowas.c: missed a couple of accesses to a struct Client
+
+ * ircd/uping.c: missed a couple of accesses to a struct Client
+
+ * ircd/send.c: missed a couple of accesses to a struct Client
+
+ * ircd/s_user.c: missed a couple of accesses to a struct Client
+
+ * ircd/s_misc.c: missed a couple of accesses to a struct Client
+
+ * ircd/s_conf.c: missed a couple of accesses to a struct Client
+
+ * ircd/s_bsd.c: missed a couple of accesses to a struct Client
+
+ * ircd/s_auth.c: missed a couple of accesses to a struct Client
+
+ * ircd/res.c: missed a couple of accesses to a struct Client
+
+ * ircd/parse.c: missed a couple of accesses to a struct Client
+
+ * ircd/m_whois.c: use new accessor macros for struct Client
+
+ * ircd/m_who.c: use new accessor macros for struct Client
+
+ * ircd/m_wallchops.c: use new accessor macros for struct Client
+
+ * ircd/m_version.c: use new accessor macros for struct Client
+
+ * ircd/m_userip.c: use new accessor macros for struct Client
+
+ * ircd/m_userhost.c: use new accessor macros for struct Client
+
+ * ircd/m_user.c: use new accessor macros for struct Client
+
+ * ircd/m_uping.c: use new accessor macros for struct Client
+
+ * ircd/m_trace.c: use new accessor macros for struct Client
+
+ * ircd/m_topic.c: use new accessor macros for struct Client
+
+ * ircd/m_time.c: use new accessor macros for struct Client
+
+ * ircd/m_stats.c: use new accessor macros for struct Client
+
+ * ircd/m_squit.c: use new accessor macros for struct Client
+
+ * ircd/m_silence.c: use new accessor macros for struct Client
+
+ * ircd/m_server.c: use new accessor macros for struct Client;
+ remove dead code
+
+ * ircd/m_rpong.c: use new accessor macros for struct Client
+
+ * ircd/m_rping.c: use new accessor macros for struct Client
+
+ * ircd/m_quit.c: use new accessor macros for struct Client
+
+ * ircd/m_privmsg.c: use new accessor macros for struct Client
+
+ * ircd/m_pong.c: use new accessor macros for struct Client; remove
+ dead code
+
+ * ircd/m_ping.c: use new accessor macros for struct Client
+
+ * ircd/m_pass.c: use new accessor macros for struct Client
+
+ * ircd/m_part.c: use new accessor macros for struct Client
+
+ * ircd/m_oper.c: use new accessor macros for struct Client
+
+ * ircd/m_notice.c: use new accessor macros for struct Client
+
+ * ircd/m_nick.c: use new accessor macros for struct Client
+
+ * ircd/m_names.c: use new accessor macros for struct Client
+
+ * ircd/m_mode.c: use new accessor macros for struct Client
+
+ * ircd/m_map.c: use new accessor macros for struct Client
+
+ * ircd/m_list.c: use new accessor macros for struct Client
+
+ * ircd/m_links.c: use new accessor macros for struct Client;
+ remove some dead code
+
+ * ircd/m_kill.c: use new accessor macros for struct Client; remove
+ some dead code
+
+ * ircd/m_kick.c: use new accessor macros for struct Client
+
+ * ircd/m_join.c: use new accessor macros for struct Client; remove
+ some dead code
+
+ * ircd/m_ison.c: use new accessor macros for struct Client
+
+ * ircd/m_invite.c: use new accessor macros for struct Client
+
+ * ircd/m_info.c: use new accessor macros for struct Client
+
+ * ircd/m_gline.c: use new accessor macros for struct Client
+
+ * ircd/m_error.c: use new accessor macros for struct Client
+
+ * ircd/m_create.c: use new accessor macros for struct Client
+
+ * ircd/m_connect.c: use new accessor macros for struct Client;
+ removed some dead code
+
+ * ircd/m_burst.c: use new accessor macros for struct Client
+
+ * ircd/m_away.c: use new accessor macros for struct Client
+
+ * ircd/m_admin.c: use new accessor macros for struct Client
+
+ * ircd/hash.c: missed a couple of accesses to a struct Client
+
+ * ircd/gline.c: missed a couple of accesses to a struct Client
+
+ * ircd/crule.c: missed a couple of accesses to a struct Client
+
+ * ircd/class.c: missed an access to a struct Client
+
+ * ircd/channel.c: missed a couple of accesses to a struct Client
+
+ * ircd/IPcheck.c: missed an access to a struct Client
+
+ * include/querycmds.h: fix a couple of stats macros to use
+ structure accessor macros
+
+ * include/client.h: change structure member names to highlight any
+ places in the code I've missed
+
+2000-12-12 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/whowas.c: use new struct Client accessor macros
+
+ * ircd/whocmds.c: use new struct Client accessor macros
+
+ * ircd/send.c: use new struct Client accessor macros
+
+ * ircd/s_user.c: use new struct Client accessor macros; removed
+ some dead code
+
+ * ircd/s_serv.c: use new struct Client accessor macros; removed
+ some dead code
+
+ * ircd/s_numeric.c: use new struct Client accessor macros
+
+ * ircd/s_misc.c: use new struct Client accessor macros
+
+ * ircd/s_debug.c: use new struct Client accessor macros
+
+ * ircd/s_conf.c: use new struct Client accessor macros
+
+ * ircd/s_bsd.c: use new struct Client accessor macros
+
+ * ircd/s_auth.c: use new struct Client accessor macros
+
+ * ircd/parse.c: use new struct Client accessor macros
+
+ * ircd/packet.c: use new struct Client accessor macros
+
+ * ircd/numnicks.c: use new struct Client accessor macros
+
+ * ircd/motd.c: use new struct Client accessor macros
+
+ * ircd/listener.c: use new struct Client accessor macros
+
+ * ircd/list.c: use new struct Client accessor macros
+
+ * ircd/jupe.c: use new struct Client accessor macros
+
+ * ircd/ircd_snprintf.c: use new struct Client accessor macros
+
+ * ircd/ircd_reply.c: use new struct Client accessor macros
+
+ * ircd/ircd_relay.c: use new struct Client accessor macros
+
+ * ircd/ircd.c: use new struct Client accessor macros
+
+ * ircd/gline.c: catch some instances of me.<stuff> I missed
+ previously
+
+ * ircd/client.c: use cli_ instead of con_
+
+ * ircd/class.c: use cli_ instead of con_
+
+ * ircd/channel.c: use cli_ instead of con_
+
+ * ircd/IPcheck.c: use cli_ instead of con_; catch some instances
+ of me.<stuff> I missed previously
+
+ * include/client.h: use cli_ instead of con_...seemed like a good
+ idea at the time *shrug*
+
+2000-12-11 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/hash.c: use struct Client accessor macros
+
+ * ircd/gline.c: use struct Client accessor macros
+
+ * ircd/crule.c: use struct Client accessor macros
+
+ * ircd/client.c: use struct Client accessor macros; remove some
+ dead code
+
+ * ircd/class.c: use struct Client accessor macros
+
+ * ircd/channel.c: use struct Client accessor macros; remove some
+ dead code
+
+ * ircd/IPcheck.c: use struct Client accessor macros
+
+ * include/numnicks.h: use struct Client accessor macros
+
+ * include/client.h: first step to divorcing struct Client and
+ struct Connection--define accessor macros and use them
+
+ * ircd/gline.c: When Uworld removed Uworld-set G-lines, only the
+ uplink would remove them. This is because the removal protocol
+ message wasn't being sent to the uplinks. This is fixed by fixing
+ propagate_gline() to send the proper number of arguments depending
+ on whether or not we're adding or deleting the Uworld gline, and
+ by having gline_deactivate() make sure to turn off the active bit
+ and call propagate_gline() if it's a Uworld gline
+
+2000-12-10 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/os_generic.c: make sure IOV_MAX gets defined, just in case
+
+ * ircd/os_bsd.c: apparently BSD doesn't have IOV_MAX defined
+ anywhere intelligent...
+
+2000-12-09 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/send.c (send_queued): call deliver_it with appropriate
+ arguments
+
+ * ircd/s_serv.c: reorder a couple of headers--cosmetic
+
+ * ircd/s_bsd.c (deliver_it): make deliver_it work with a struct
+ MsgQ
+
+ * ircd/os_solaris.c (os_sendv_nonb): function for calling writev
+ with appropriate iovec
+
+ * ircd/os_linux.c (os_sendv_nonb): function for calling writev
+ with appropriate iovec
+
+ * ircd/os_generic.c (os_sendv_nonb): function for calling writev
+ with appropriate iovec
+
+ * ircd/os_bsd.c (os_sendv_nonb): function for calling writev with
+ appropriate iovec
+
+ * ircd/msgq.c (msgq_mapiov): add a len_p argument for totalling up
+ exactly how much we're trying to write out to the fd
+
+ * include/s_bsd.h: make deliver_it take a struct MsgQ
+
+ * include/msgq.h: add a len_p argument to msgq_mapiov to help
+ detect short writes that indicate possible socket blocking
+
+ * include/ircd_osdep.h: declare os_sendv_nonb()
+
+ * ircd/channel.c (modebuf_mode): don't add empty modes...
+
+2000-12-08 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * include/send.h: add prio argument to send_buffer to select
+ between normal and priority queues
+
+ * ircd/s_user.c (send_user_info): add prio argument to send_buffer
+ call
+
+ * ircd/m_ison.c (m_ison): add prio argument to send_buffer call
+
+ * ircd/ircd_reply.c (send_reply): add prio argument to send_buffer
+ call
+
+ * ircd/channel.c (send_channel_modes): add prio argument to
+ send_buffer call
+
+ * ircd/send.c (send_buffer): add a prio argument to select the
+ priority queue; update send.c functions to use it
+
+ * ircd/msgq.c (msgq_add): remove msgq_prio; fold msgq_link and
+ msgq_add; add a prio argument to msgq_add to select the priority
+ queue
+
+ * include/msgq.h: remove msgq_prio; add a prio argument to
+ msgq_add
+
+ * ircd/send.c: remove sendbuf; remove GODMODE code; switch to
+ using msgq functions instead of dbuf functions; remove old, dead
+ sendto_* functions; redo send_buffer to take a struct MsgBuf;
+ rework sendcmdto_* functions to make use of the new struct MsgBuf
+
+ * ircd/s_user.c: remove hunt_server; restructure send_user_info to
+ make appropriate use of struct MsgBuf
+
+ * ircd/s_debug.c (count_memory): count memory used by the MsgQ
+ system and report it
+
+ * ircd/s_conf.c (read_configuration_file): use
+ sendto_opmask_butone instead of the now dead sendto_op_mask
+
+ * ircd/s_bsd.c: switch to using appropriate MsgQLength and other
+ calls on sendQ
+
+ * ircd/parse.c (parse_server): get rid of a piece of GODMODE code
+
+ * ircd/msgq.c: add msgq_append and msgq_bufleft; fix a bug in
+ msgq_clean
+
+ * ircd/m_version.c: fix spelling in comments marking dead code
+
+ * ircd/m_userip.c (userip_formatter): restructure to make use of
+ struct MsgBuf
+
+ * ircd/m_userhost.c (userhost_formatter): restructure to make use
+ of struct MsgBuf
+
+ * ircd/m_stats.c: use MsgQLength on a sendQ
+
+ * ircd/m_settime.c: use MsgQLength instead of DBufLength on a
+ sendQ; mark a piece of dead code
+
+ * ircd/m_names.c: use send_reply instead of sendto_one
+
+ * ircd/m_mode.c: use new mode; remove old dead code
+
+ * ircd/m_ison.c (m_ison): restructure to make use of struct MsgBuf
+
+ * ircd/m_burst.c: use BUFSIZE instead of IRC_BUFSIZE; remove old
+ dead code
+
+ * ircd/listener.c (accept_connection): use sendto_opmask_butone
+ instead of sendto_op_mask
+
+ * ircd/list.c (free_client): use MsgQClear to clear sendQ
+
+ * ircd/ircd_reply.c: remove send_error_to_client; restructure
+ send_reply to make use of struct MsgBuf
+
+ * ircd/dbuf.c (dbuf_put): remove argument to flush_sendq_except,
+ since its no longer used (at least currently)
+
+ * ircd/channel.c: restructure send_channel_modes to make use of
+ struct MsgBuf; remove set_mode, add_token_to_sendbuf, cancel_mode,
+ and send_hack_notice; use BUFSIZE instead of IRC_BUFSIZE
+
+ * ircd/Makefile.in: add msgq.c to list of sources; run make depend
+
+ * ircd/IPcheck.c: use sendcmdto_one instead of sendto_one
+
+ * include/send.h: send_buffer now takes a struct MsgBuf * instead
+ of a char *; flush_sendq_except now takes no arguments, as sendq
+ flushing currently only happens in dbuf.h and sendQ is a struct
+ MsgQ; remove prototypes for a lot of old sendto_* functions that
+ aren't used anymore; remove sendbuf and IRC_BUFSIZE--the former is
+ no longer needed, and the latter is identical to BUFSIZE in
+ ircd_defs.h
+
+ * include/s_user.h: make InfoFormatter take a struct MsgBuf*
+ instead of a char *; also make it return void, instead of char *
+
+ * include/msgq.h: add msgq_append and msgq_bufleft functions
+
+ * include/client.h: use a struct MsgQ instead of a struct DBuf for
+ sendq
+
+ * doc/Configure.help: Remove help for compile-time options that
+ have gone away
+
+ * config/config-sh.in: remove CONFIG_NEWMODE
+
+ * ircd/m_server.c (mr_server): don't send server IPs in any server
+ notices
+
+ * ircd/msgq.c (msgq_vmake): add \r\n to messages
+
+2000-12-07 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * include/msgq.h: declare the MsgQ API
+
+ * ircd/msgq.c: implementation of new MsgQ system
+
+2000-12-06 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/ircd_features.c: #include was supposed to be for
+ ircd_features.h, not features.h--missed when I had to do a
+ rename because of namespace collision
+
+2000-12-05 Greg Sikorski <gte@atomicrevs.demon.co.uk>
+ * ircd/m_topic.c: Added missing braces that caused all remote
+ topics to be ignored.
+
+2000-12-04 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_create.c: I'm tired of the exit_client warning :)
+ (ms_create): discovered that exit_client() was being called with
+ too few arguments
+
+ * ircd/s_misc.c (exit_client): remove all dependance on
+ FNAME_USERLOG, since that's now gone; log only to LS_USER
+
+ * ircd/s_debug.c: USE_SYSLOG no longer means anything
+
+ * ircd/m_oper.c (m_oper): no longer log to LS_OPERLOG--we already
+ log to LS_OPER
+
+ * ircd/m_kill.c: no longer conditionalize on SYSLOG_KILL
+
+ * ircd/ircd_log.c: remove LS_OPERLOG, LS_USERLOG
+
+ * include/ircd_log.h: remove LS_OPERLOG, LS_USERLOG--they serve
+ the same purpose as LS_USER and LS_OPER
+
+ * config/config-sh.in: remove no longer relevant log config
+ variables
+
+ * ircd/uping.c (uping_init): use log_write instead of ircd_log
+
+ * ircd/s_misc.c (exit_client): use log_write instead of ircd_log
+
+ * ircd/s_conf.c: use log_write instead of ircd_log
+
+ * ircd/s_bsd.c (report_error): use log_write instead of ircd_log
+
+ * ircd/s_auth.c (timeout_auth_queries): use log_write instead of
+ ircd_log
+
+ * ircd/res.c (send_res_msg): use log_write instead of ircd_log
+
+ * ircd/m_who.c: use log_write instead of write_log; no longer
+ conditionalize on WPATH; mark dead ircd_log calls
+
+ * ircd/m_uping.c: mark dead ircd_log call
+
+ * ircd/m_server.c (mr_server): use log_write instead of ircd_log
+
+ * ircd/m_restart.c: use log_write instead of ircd_log; mark dead
+ ircd_log calls
+
+ * ircd/m_rehash.c (mo_rehash): use log_write instead of ircd_log
+
+ * ircd/m_oper.c: use log_write instead of ircd_log; no longer
+ conditionalize on FNAME_OPERLOG; mark dead ircd_log calls
+
+ * ircd/m_kill.c: mark dead ircd_log calls
+
+ * ircd/m_connect.c: use log_write instead of ircd_log; mark dead
+ ircd_log
+
+ * ircd/m_clearmode.c: use log_write instead of write_log; no
+ longer conditionalize on OPATH
+
+ * ircd/jupe.c: use log_write instead of write_log; no longer
+ conditionalize on JPATH
+
+ * ircd/ircd_log.c: add USER subsystem; remove ircd_log() compat
+ function; fix a couple of bugs
+
+ * ircd/ircd_alloc.c: fixed a comment
+
+ * ircd/ircd.c: use log_write instead of ircd_log; fold server
+ notice generation in a couple of cases
+
+ * ircd/gline.c: use log_write instead of write_log; no longer
+ conditionalize on GPATH
+
+ * ircd/channel.c (modebuf_flush_int): use log_write instead of
+ write_log; no longer conditionalize on OPATH
+
+ * ircd/Makefile.in: run make depend, since dependencies have
+ changed
+
+ * doc/example.conf: add system USER to documentation
+
+ * include/ircd_log.h: add system USER; remove old ircd_log()
+ declarations
+
+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
* 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.125 2000-05-01 20:51:38 kev Exp $
-#
-# Insert new changes at beginning of the change list.
-#