+2002-04-01 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/channel.c (joinbuf_join): don't add a channel to the list
+ in the joinbuf unless when we flush it, we empty the list
+
+2002-04-02 Andrew Miller <a1kmm@mware.virtualave.net>
+ * ircd/ircd_parser.y: Added ircd parser, lexer, to replace the
+ old configuration file format.
+ * ircd/ircd_lexer.l
+ * ircd/s_conf.c
+ * doc/example.conf
+
+2002-03-23 Bert Faes <bert.faes@pandora.be>
+
+ * s_misc.c made /trace reply always show the username
+
+2002-03-28 Kevin L Mitchell <klmitch@mit.edu>
+
+ * configure.in: use AC_CHECK_FUNCS to define HAVE_* macros; test
+ for setrlimit, getrusage, and times
+
+ * configure: rerun auto-conf
+
+ * config.h.in: rerun autoheader
+
+2002-03-27 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/m_burst.c (ms_burst): use MODEBUF_DEST_NOKEY to suppress
+ sending of the key to the channel
+
+ * ircd/channel.c (modebuf_flush_int): when processing keys, only
+ include the actual key in the mode sent to the channel if
+ MODEBUF_DEST_NOKEY is not set
+
+ * include/channel.h: needed more bits for MODEBUF_DEST_*,
+ especially when adding MODEBUF_DEST_NOKEY to force keys in the
+ BURST to be reported as "*" to the channel
+
+ * ircd/m_oper.c (m_oper): clear the new oper's sendq so it gets
+ inherited from the class associated with the O-line
+
+2002-03-25 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/s_user.c (set_nick_name): invalidate all ban valid caching
+ when a user changes his nickname so we can catch if he now matches
+ a ban
+
+2002-03-20 Reed Loden <reed@redmagnet.com>
+ * doc/example.conf: Added OPER_LIST_CHAN and LOCOP_LIST_CHAN.
+
+ * doc/readme.features: Added OPER_LIST_CHAN and LOCOP_LIST_CHAN.
+
+2002-03-20 LordLuke <lordluke@undernet.org>
+ * ircd/client.c: Add LOCOP_LIST_CHAN feature.
+
+ * ircd/ircd_features.h: Add LOCOP_LIST_CHAN feature.
+
+2002-03-19 Joseph Bongaarts <foxxe@wtfs.net>
+
+ * ircd/m_links.c: Make /links behave like /map for head_in_sand.
+ cleaned up excess code.
+
+ * ircd/map.c: Added map_dump_links_head_in_sand() Made changes in
+ map_add() and map_update() for links changes.
+
+ * include/map.h: Added info and prot to struct Map
+
+ * include/ircd_defs.h: Added MAP_CACHE_TIME for length of time
+ servers are cached in MapList
+
+ * ircd/s_misc.c: changed #ifdef for map_update()
+
+ * ircd/m_server.c: changed #ifdef for map_update()
+
+ * include/ircd_policy.h: added NO_HEAD_IN_SAND for easier removal of
+ hiding features.
+
+ * configure.in: add --disable-headinsand
+
+ * configure: Ran autoconf
+
+ * ircd/m_stats.c: Fixed a bug in /stats i and made /stats i show
+ connect limits
+
+ * ircd/s_stats.c: Made /stats i report connect limits
+
+ * ircd/s_err.c: Modified RPL_STATSILINE to use %s instead of
+ "*" for the password field.
+
+2002-03-19 LordLuke <lordluke@undernet.org>
+
+ * include/channel.h: Allow opers to view +s channels in /list
+
+ * include/client.h: Add "PRIV_LIST_CHAN" oper privilege
+
+ * include/ircd_features.h: added "LIST_CHAN" feature
+
+ * ircd/channel.c: Allow opers to view +s channels in /list
+
+ * ircd/client.c: Add "PRIV_LIST_CHAN"
+
+ * ircd/ircd_features.c: Add "LIST_CHAN" feature
+
+2002-03-13 Joseph Bongaarts <foxxe@wtfs.net>
+
+ * ircd/m_kill.c: Last of the last of the bug fixes (Thanks Spike).
+ Must be more careful when forward porting by hand...
+
+2002-03-13 Carlo Wood <run@alinoe.com>
+
+ * include/channel.h: CHFL_CHANNEL_MANAGER, new local
+ channel flag set when someone creates a channel or joins
+ using the Apass. IsChannelManager(), SetChannelManager():
+ macros to manipulate new channel flag.
+ channel_modes: Added new argument to avoid calling
+ find_member_link more often than needed.
+
+ * include/numeric.h: RPL_APASSWARN, ERR_NOTLOWEROPLEVEL,
+ ERR_NOTMANAGER, ERR_CHANSECURED, ERR_UPASSSET,
+ ERR_UPASSNOTSET: new numeric replies.
+
+ * ircd/channel.c: is_level0_op: removed.
+ member_can_send_to_channel: disallow channel manager
+ to talk. channel_modes: show upass to level0 ops.
+ mode_parse_upass: Only the channel manager is allowed
+ to change the upass. Only allow to set upass when apass
+ is also set. mode_parse_apass: Don't allow to change the
+ Apass if the channel is older than 48 hours. Only allow
+ to remove the apass when upass is not set. Send clear
+ warnings regarding the importance of apass.
+ mode_process_clients: Don't change the oplevel of an opped
+ member in a channel where upass is not set.
+
+ * ircd/destruct_event.c: exec_expired_destruct_events:
+ Bug fix: send DESTRUCT message when destructing a channel.
+
+ * ircd/m_destruct.c: ms_destruct: Bug fix: use self as
+ prefix for DESTRUCT message.
+
+ * ircd/m_join.c: m_join: Handle apass and upass.
+
+ * ircd/m_kick.c: m_kick: Don't allow to kick member with
+ a higher or equal op-level.
+
+ * ircd/m_mode.c: m_mode: Now pass member to channel_modes.
+ ms_mode: Allow server to do modes on channels with apass
+ set.
+
+ * ircd/s_err.c: RPL_APASSWARN, ERR_NOTLOWEROPLEVEL,
+ ERR_NOTMANAGER, ERR_CHANSECURED, ERR_UPASSSET,
+ ERR_UPASSNOTSET: new numeric replies.
+
+
+2002-03-10 Joseph Bongaarts <foxxe@wtfs.net>
+
+ * ircd/m_kill.c: Last of the bug fixes for do_kill()
+
+ * ircd/list.c: Don't remove clients from the linked list
+ that aren't actually in the list.
+
+2002-03-08 Carlo Wood <run@alinoe.com>
+ * include/channel.h: Added CHFL_BURST_ALREADY_OPPED
+ and CHFL_BURST_ALREADY_VOICED.
+
+ * ircd/m_burst.c: Allow BURST outside net-burst
+ and take into account that users are already joined
+ to the channel in that case.
+
+ * ircd/m_destruct.c: Implementation of DESTRUCT
+ handling code.
+
+ * ircd/m_join.c: Set the channel creationtime to
+ the timestamp of a message when that timestamp is
+ smaller.
+2002-02-27 Reed Loden <reed@redmagnet.com>
+ * tools/crypter: Updated some variables, added another notice,
+ added CVS Id tag, and updated Perl location.
+
+ * tools/ringlog.c: Added IRC - Internet Relay Chat,
+ tools/ringlog.c
+
+ * tools/ringlog.pl: Added IRC - Internet Relay Chat,
+ tools/ringlog.pl
+
+ * tools/wrapper.c: Added IRC - Internet Relay Chat,
+ tools/wrapper.c
+
+ * tools/mkpasswd.c: Added CVS Id tag
+
+ * tools/sums: Updated to comply with sums being moved to tools/
+ and added CVS Id tag
+
+ * tools/README: Updated location of file and partly rewrote to fit
+ u2.10.11's Features
+
+ * tools/Makefile.crypt: Updated location of file and added CVS Id
+ tag
+
+ * acconfig.h: Updated location of file
+
+ * config.h.in: Updated location of file
+
+ * tools/Bounce/bounce.conf: Added CVS Id tag
+
+ * tools/Bounce/Bounce.cpp: Updated location of file
+
+ * tools/Bounce/Bounce.h: Updated location of file
+
+ * tools/hashtoy: Added CVS Id Tag
+
+2002-02-27 Carlo Wood <run@alinoe.com>
+
+ * /ircd/ircd.c: check_pings: First check if a PING was sent at all.
+
+2002-03-01 Carlo Wood <run@alinoe.com>
+
+ * include/channel.h: struct Channel: new attribute destruct_event.
+ Prototype for destruct_channel().
+
+ * include/destruct_event.h: new header file for destruct_event.c.
+
+ * ircd/Makefile.in: New source file: destruct_event.c.
+
+ * ircd/channel.c: sub1_from_channel: Don't destruct channel
+ immedeately but instead schedule it for destruction after
+ some time when a channel becomes empty (and clear invite
+ only and limit in that case).
+ destruct_channel: new function, was previously the destructing
+ part of sub1_from_channel.
+ add_user_to_channel: remove destruction request if any.
+
+ * ircd/destruct_event.c: New file. Implementation of functions
+ schedule_destruct_event_1m, schedule_destruct_event_48h,
+ remove_destruct_event and exec_expired_destruct_events.
+
+ * ircd/ircd.c: destruct_event_timer: new timer.
+ main: use destruct_event_timer to call exec_expired_destruct_events
+ once per minute.
+
+ * ircd/m_endburst.c: ms_end_of_burst: Don't complain about empty
+ channels. Schedule new empty channels for destruction.
+
+ * ircd/m_join.c: m_join: Destruct just-created channel immedeately.
+
+2002-03-01 Carlo Wood <run@alinoe.com>
+ * ircd/s_misc.c: exit_client: Only call map_update()
+ for servers.
+
+2002-02-28 Carlo Wood <run@alinoe.com>
+ * include/channel.h: New attribute 'oplevel' in struct Membership.
+ Added defines MAXOPLEVELDIGITS and MAXOPLEVEL.
+ New macros: OpLevel(member): returns op-level of member and
+ SetOpLevel(member, value): sets op-level of member.
+ Prototype of add_user_to_channel: add oplevel to parameters.
+ Prototype of mode_parse: add member to to parameters.
+
+ * include/numeric.h: added ERR_NOTLOWEROPLEVEL.
+
+ * ircd/s_err.c: idem.
+
+ * ircd/channel.c: Removed unmatched '{' braces from comments
+ (confuses vi). add_user_to_channel: oplevel is passed to function
+ and added in the created MemberShip structure. send_channel_modes:
+ Generate the nick:mode list of the BURST msg in the new style (with
+ op-levels). DONE_UPASS/DONE_APASS: fixed typo in comment. struct
+ ParseState: New attribute: member. mode_process_clients: Disallow
+ deopping someone with an equal or higher op-level, take care of
+ inheritance of op-level. mode_parse: member is passed to function
+ and added in the created ParseState structure. joinbuf_join: pass 0
+ as oplevel to add_user_to_channel as needed initialization of oplevel
+ in struct MemberShip.
+
+ * ircd/m_burst.c: ms_burst: Implementation of op-levels in the
+ decoding of a BURST message and passing on a BURST message.
+ Renamed default_mode to current_mode.
+
+ * ircd/m_mode.c: m_mode/ms_mode: pass on `member' to mode_parse.
+
+ * ircd/m_opmode.c: ms_opmode/mo_opmode: pass on NULL as member
+ to mode_parse (causes opped member to get op-level 0).
+
+2002-02-25 Carlo Wood <run@alinoe.com>
+ * include/channel.h: Added two new strings to struct Mode,
+ upass and apass, both with maximum length PASSLEN (a new
+ define in this file). Two new mode defines MODE_UPASS and
+ MODE_APASS.
+
+ * ircd/channel.c: is_level0_op: Added as dummy function.
+ channel_modes/modebuf_flush_int/modebuf_extract/mode_parse:
+ Added support for MODE_APASS (+A) and MODE_UPASS (+u).
+ mode_parse_upass: New function to parse mode +u.
+ mode_parse_apass: New function to parse mode +A.
+
+ * ircd/s_err.c: Added 'A' and 'u' to mode list (RPL_MYINFO).
+
2002-02-25 Carlo Wood <carlo@alinoe.com>
* ircd/m_server.c: remove unused variables