+2001-09-21 Perry Lorier <isomer@coders.net>
+ * ircd/send.c and various: replace sendcmdto_flag_butone with
+ sendwallto_group_butone
+
+2001-09-21 Vampire- <unknown>
+ * ircd/ircd_string.c: unique_name_vector round II.
+
+2001-09-21 mbuna <mbuna@undernet.org>
+ * configure.in: Add support for darwin
+
+2001-09-21 Perry Lorier <isomer@coders.net>
+ * ircd/s_user.c I'm stupid, s/acptr/from/, Hektik pointed it out
+
+2001-09-20 Perry Lorier <isomer@coders.net>
+
+ * Pullups from 2.10.10.pl16
+ * Added some warnings, and the concept of rate limited snotices
+
+2001-08-31 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/channel.c: use "%u" to format limit arguments; use
+ strtoul() to process limit arguments in a /mode command--note:
+ most clients seem to truncate the integer, probably because
+ they're using atoi, and perhaps signed ints
+
+2001-08-17 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/numnicks.c: include stdlib.h for exit()
+
+ * ircd/ircd_log.c: include stdlib.h for exit()
+
+ * ircd/ircd_events.c: include stdlib.h for exit()
+
+ * ircd/s_stats.c: remove description of /stats v, since it's gone
+
+ * ircd/m_wallops.c (mo_wallops): add "*" to the beginning of
+ /wallops to distinguish wallops from wallusers
+
+ * ircd/m_error.c (mr_error): ignore ERROR from clients that aren't
+ in the "handshake" or "connecting" states--I think the latter will
+ never happen, but...
+
+ * doc/Authors: apply delete's Authors patch
+
+ * RELEASE.NOTES: rewrite RELEASE.NOTES, basing it a little on
+ Braden's version
+
+ * README: rewrite README
+
+2001-07-31 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/s_serv.c (server_estab): remove unused variable split
+
+ * ircd/parse.c: add mr_error to the parse table
+
+ * ircd/m_error.c (mr_error): add mr_error() to handle ERRORs from
+ unregistered connections--if IsUserPort() is true, the ERROR is
+ ignored, otherwise, the message is saved
+
+2001-07-28 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_kill.c (ms_kill): another minor typo *sigh*
+
+ * ircd/s_user.c (send_supported): oops, minor typo...
+
+ * ircd/s_user.c: implement send_supported() to send two ISUPPORT
+ messages containing our feature buffers; make register_user() use
+ send_supported()
+
+ * ircd/s_misc.c (exit_client): make sure not to give away a remote
+ server in the ERROR message sent to the client; if the killer is a
+ server, we substitute our name in its place
+
+ * ircd/m_version.c (m_version): use send_supported() to send the
+ ISUPPORT values to the user
+
+ * ircd/m_nick.c: shave nick collision kills here a bit, too, for
+ the same reasons as for m_kill.c
+
+ * ircd/m_kill.c: shave kills a bit so that the results look
+ exactly the same no matter where you are; if we didn't do this, it
+ would be possible to map the network by looking at the differences
+ between kills originating under various circumstances
+
+ * include/supported.h: split the features into two, so as to not
+ bust the parameter count when sending the features list
+
+ * include/s_user.h: declare new send_supported() function to send
+ the ISUPPORT information
+
+2001-07-27 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/s_bsd.c: disable IP (*not* TCP) options to prevent
+ source-routed spoofing attacks; this is only available under
+ u2.10.11, so don't even bother, since no one but testers are using
+ the source base
+
+2001-07-25 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * include/ircd_policy.h: enable HEAD_IN_SAND_REMOTE by default
+
+ * ircd/s_err.c: put in a . for reporting link version on /trace,
+ to match what /version does
+
+2001-07-21 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/s_misc.c (exit_client): servers don't understand what the
+ numeric nick ERROR is supposed to mean, so they ignore error
+ messages, resulting in not knowing why we were rejected; use
+ sendcmdto_one for servers and sendrawto_one for clients
+
+2001-07-17 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/m_burst.c (ms_burst): in the case of a modeless channel and
+ a nick collide, a bare BURST may be propagated; adjust the
+ enforced parameter count to accept the bare BURST
+
+2001-07-12 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/s_bsd.c: mark a client as having been IP checked
+
+ * ircd/IPcheck.c (ip_registry_check_remote): remove unneeded
+ second call to SetIPChecked()
+
+2001-07-11 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/engine_poll.c: deal with POLLHUP properly (hopefully)
+
+ * ircd/engine_devpoll.c: deal with POLLHUP properly (hopefully)
+
+2001-07-09 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/os_bsd.c (os_get_rusage): move buf into the two ifdef'd
+ sections so that if neither is used, the declaration of buf will
+ not elicit an "unused variable" warning under NetBSD
+
+ * ircd/m_map.c: include string.h to declare strcpy (fix warnings
+ on alpha)
+
+ * ircd/m_away.c: include string.h to declare strcpy/strlen (fix
+ warnings on alpha)
+
+ * ircd/ircd_log.c: include string.h to declare strcpy/strlen (fix
+ warnings on alpha)
+
+ * ircd/client.c: include string.h to declare memset (fix warnings
+ on alpha)
+
+ * ircd/channel.c: remove unused functions next_overlapped_ban,
+ del_banid, and is_deopped (fix warnings under -O1)
+
+ * ircd/IPcheck.c: include string.h to declare memset/memcpy (fix
+ warnings on alpha)
+
+2001-06-29 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/s_user.c (set_user_mode): clear the snomask if the user
+ isn't supposed to receive server notices anymore
+
+ * ircd/ircd_features.c: change CONFIG_OPERCMDS to default to FALSE
+
+ * configure.in: use AC_MSG_CHECKING/AC_MSG_RESULT when checking
+ installation prefix; default devpoll and kqueue to on (they get
+ turned off if the required headers aren't present)
+
+ * ircd/whocmds.c (do_who): use ircd_snprintf() instead of
+ sprintf_irc(); it's a bit hackish, but it'll do for now
+
+ * ircd/support.c: remove unused #include
+
+ * ircd/send.c: remove unused #include
+
+ * ircd/s_user.c: use ircd_snprintf() instead of sprintf_irc()
+
+ * ircd/s_serv.c: remove unused #include
+
+ * ircd/s_misc.c: use ircd_snprintf() and friends instead of
+ sprintf_irc() and friends
+
+ * ircd/s_err.c: moved atoi_tab[] from ircd/sprintf_irc.c to
+ ircd/s_err.c, which is the only other file to refer to it
+
+ * ircd/s_conf.c (conf_add_deny): use ircd_snprintf() instead of
+ sprintf_irc()
+
+ * ircd/s_bsd.c (connect_server): use ircd_snprintf() instead of
+ sprintf_irc()
+
+ * ircd/s_auth.c: use ircd_snprintf() instead of sprintf_irc()
+
+ * ircd/res.c: use ircd_snprintf() instead of sprintf_irc()
+
+ * ircd/m_version.c: use ircd_snprintf() instead of sprintf_irc()
+
+ * ircd/m_kill.c: use ircd_snprintf() instead of sprintf_irc()
+
+ * ircd/listener.c: use ircd_snprintf() instead of sprintf_irc()
+
+ * ircd/gline.c: use ircd_snprintf() instead of sprintf_irc()
+
+ * ircd/channel.c: don't include sprintf_irc.h; use ircd_snprintf()
+ instead of sprintf_irc()
+
+ * ircd/Makefile.in: remove sprintf_irc.c from sources list; run
+ make depend
+
+ * include/ircd_string.h: remove declaration of sprintf_irc() (what
+ was it doing here anyway?)
+
+ * include/sprintf_irc.h: removed unneeded source file
+
+ * ircd/sprintf_irc.c: removed unneeded source file
+
+ * ircd/s_debug.c (count_memory): remove some dead code
+
+ * ircd/s_auth.c: remove some dead code
+
+ * ircd/res.c (update_list): remove some dead code
+
+ * ircd/m_whowas.c: remove some dead code
+
+ * ircd/m_whois.c: remove some dead code
+
+ * ircd/m_who.c: remove some dead code
+
+ * ircd/m_wallusers.c: remove some dead code
+
+ * ircd/m_wallops.c: remove some dead code
+
+ * ircd/m_wallchops.c: remove some dead code
+
+ * ircd/m_version.c: remove some dead code
+
+ * ircd/m_userip.c: remove some dead code
+
+ * ircd/m_userhost.c: remove some dead code
+
+ * ircd/m_uping.c: remove some dead code
+
+ * ircd/m_trace.c: remove some dead code
+
+ * ircd/m_topic.c: remove some dead code
+
+ * ircd/m_tmpl.c: remove some dead code
+
+ * ircd/m_time.c: remove some dead code
+
+ * ircd/m_squit.c: remove some dead code
+
+ * ircd/m_silence.c: remove some dead code
+
+ * ircd/m_settime.c: remove some dead code
+
+ * ircd/m_set.c: remove some dead code
+
+ * ircd/m_server.c: remove some dead code
+
+ * ircd/m_rpong.c: remove some dead code
+
+ * ircd/m_rping.c: remove some dead code
+
+ * ircd/m_restart.c: remove some dead code
+
+ * ircd/m_reset.c: remove some dead code
+
+ * ircd/m_rehash.c: remove some dead code
+
+ * ircd/m_quit.c: remove some dead code
+
+ * ircd/m_proto.c: remove some dead code
+
+ * ircd/m_privs.c: remove some dead code
+
+ * ircd/m_privmsg.c: remove some dead code
+
+ * ircd/m_pong.c: remove some dead code
+
+ * ircd/m_ping.c: remove some dead code
+
+ * ircd/m_pass.c: remove some dead code
+
+ * ircd/m_part.c: remove some dead code
+
+ * ircd/m_opmode.c: remove some dead code
+
+ * ircd/m_oper.c: remove some dead code
+
+ * ircd/m_notice.c: remove some dead code
+
+ * ircd/m_nick.c: remove some dead code
+
+ * ircd/m_map.c: remove some dead code
+
+ * ircd/m_lusers.c: remove some dead code
+
+ * ircd/m_list.c: remove some dead code
+
+ * ircd/m_links.c: remove some dead code
+
+ * ircd/m_kill.c: remove some dead code
+
+ * ircd/m_kick.c: remove some dead code
+
+ * ircd/m_jupe.c: remove some dead code
+
+ * ircd/m_join.c: remove some dead code
+
+ * ircd/m_ison.c: remove some dead code
+
+ * ircd/m_invite.c: remove some dead code
+
+ * ircd/m_info.c: remove some dead code
+
+ * ircd/m_help.c: remove some dead code
+
+ * ircd/m_gline.c: remove some dead code
+
+ * ircd/m_get.c: remove some dead code
+
+ * ircd/m_error.c: remove some dead code
+
+ * ircd/m_endburst.c: remove some dead code
+
+ * ircd/m_die.c: remove some dead code
+
+ * ircd/m_desynch.c: remove some dead code
+
+ * ircd/m_destruct.c: remove some dead code
+
+ * ircd/m_defaults.c: remove some dead code
+
+ * ircd/m_create.c: remove some dead code, along with an #if 1
+
+ * ircd/m_cprivmsg.c: remove some dead code
+
+ * ircd/m_connect.c: remove some dead code
+
+ * ircd/m_close.c: remove some dead code
+
+ * ircd/m_clearmode.c: remove some dead code
+
+ * ircd/m_burst.c: remove some dead code
+
+ * ircd/m_away.c: remove some dead code
+
+ * ircd/m_admin.c: remove some dead code
+
+ * ircd/listener.c (accept_connection): remove some dead code
+
+ * ircd/ircd_reply.c (need_more_params): remove some dead code
+
+ * ircd/channel.c (add_banid): remove some dead code
+
+ * include/support.h: remove some dead code
+
+ * include/querycmds.h: remove some dead code
+
+ * doc/readme.chroot: document how to do chroot operation
+
+2001-06-28 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/Makefile.in: tune for VPATH builds/installs; add a rule to
+ force bin directory to be created if necessary prior to
+ installation; run make depend
+
+ * doc/Makefile.in (install): tune for VPATH installs by cd'ing to
+ the ${srcdir}
+
+ * Makefile.in: tune to detect Makefile.in changes in
+ subdirectories and to create installation directory indicated by
+ ${prefix}
+
+ * ircd/whocmds.c (count_users): routine to count the number of
+ users matching a given user@host mask
+
+ * ircd/s_err.c: add error messages for ERR_LONGMASK,
+ ERR_TOOMANYUSERS, and ERR_MASKTOOWIDE
+
+ * ircd/m_gline.c: look for and advance past '!' flag on G-lines
+ from operators; only set GLINE_OPERFORCE flag if oper has the
+ PRIV_WIDE_GLINE privilege
+
+ * ircd/ircd_features.c: add GLINEMAXUSERCOUNT, which is the
+ maximum number of users a G-line can impact before it has to be
+ forced; OPER_WIDE_GLINE, to allow operators to use ! to force a
+ wide G-line to be set; and LOCOP_WIDE_GLINE, to allow local
+ operators to use ! to force a wide G-line to be set
+
+ * ircd/gline.c: make make_gline() be called with separate user and
+ host arguments, and not call canon_userhost() directly; implement
+ gline_checkmask() to verify that a host mask is acceptable; move
+ BADCHAN check up in gline_add(), and check passed-in mask under
+ certain circumstances for acceptability; fix call to
+ sendto_opmask_butone() to handle separation of userhost into user
+ and host in gline_add(); update call to make_gline()
+
+ * ircd/client.c: use FEAT_OPER_WIDE_GLINE and
+ FEAT_LOCOP_WIDE_GLINE to set PRIV_WIDE_GLINE for an operator; add
+ PRIV_WIDE_GLINE to privtab[] for client_report_privs()
+
+ * include/whocmds.h (count_users): declare routine to count users
+ matching a given user@host mask
+
+ * include/numeric.h: added three new error returns: ERR_LONGMASK
+ -- mask can't be formatted into a buffer; ERR_TOOMANYUSERS -- too
+ many users would be impacted by the mask; ERR_MASKTOOWIDE -- mask
+ contains wildcards in the wrong places
+
+ * include/ircd_features.h: add FEAT_GLINEMAXUSERCOUNT,
+ FEAT_OPER_WIDE_GLINE, and FEAT_LOCOP_WIDE_GLINE
+
+ * include/gline.h (GLINE_OPERFORCE): provides a way for m_gline()
+ to signal to gline_add() that the operator attempted to force the
+ G-line to be set
+
+ * include/client.h (PRIV_WIDE_GLINE): new privilege for operators
+
+ * doc/readme.gline: update to document new "!" prefix to a G-line
+ user@host mask
+
+ * doc/readme.features: document GLINEMAXUSERCOUNT,
+ OPER_WIDE_GLINE, and LOCOP_WIDE_GLINE
+
+ * doc/example.conf: update to mention new features along with
+ their defaults
+
+2001-06-27 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * doc/example.conf: updated example.conf from Braden
+ <dbtem@yahoo.com>
+
+ * include/supported.h: forward-port from pl15
+
+2001-06-25 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * ircd/whocmds.c: include ircd_policy.h and implement
+ HEAD_IN_SAND_WHO_OPCOUNT--forward-port from pl15
+
+ * ircd/m_whois.c: forward-port of the idle-time hiding code from
+ pl15; this also required passing parc into do_whois(), which also
+ meant passing parc into do_wilds()--*sigh*
+
+ * include/ircd_policy.h: add a couple more HEAD_IN_SAND
+ #define's--WHOIS_IDLETIME and WHO_HOPCOUNT
+
+2001-06-22 Kevin L. Mitchell <klmitch@mit.edu>
+
+ * tools/wrapper.c: add a wrapper program that can be used to
+ adjust file descriptor limits and root directories; program must
+ be run as root--NOT SETUID!--and given appropriate -u arguments
+
+ * doc/readme.log: documentation of how to configure logging
+
+ * doc/readme.features: documentation of each feature (except for
+ logging)
+
2001-06-21 Kevin L. Mitchell <klmitch@mit.edu>
* Makefile.in (config): add a deprecation notice with a pointer to