Implement tracker item #1031606(relating to wildcards in /list).
[ircu2.10.12-pk.git] / ChangeLog
index 8f660ef25eed2100f9262501a1b0ce28844ab455..dcef9041234911c44764978786135ba1788242ab 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,801 @@
+2005-06-21  Andrew Miller  <a1kmm@amxl.com>
+
+       * ircd/m_list.c (param_parse): Add support for channel wildcards.
+       * ircd/m_list.c (show_usage): Document the new format.
+       * ircd/hash.c (list_next_channels): Check channel wildcard in list.
+       * include/channel.h (ListingArgs): Add the wildcard member.
+
+2005-06-19  Andrew Miller  <a1kmm@amxl.com>
+
+       * ircd/ircd_res.c (proc_answer): Deal with unexpected record types more
+       gracefully.
+
+       * ircd/ircd_res.c (res_readreply): Check res_ourserver before walking
+       the pending request list, to make DoS attacks harder.
+
+       * ircd/m_invite.c (m_invite): Give no such channel rather than not on
+       channel when the channel being invited to does not exist.
+       
+2005-06-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_debug.c (count_memory): Consolidate several lines; make
+       initial letter capitalization consistent.
+
+2005-06-19  Andrew Miller  <a1kmm@amxl.com>
+
+       * ircd/s_stats.c: Remove the "debug only" label on memusage stats,
+       since it no longer applies.
+
+2005-05-16  Michael Poole <mdpoole@troilus.org>
+
+       * include/channel.h (struct Ban): Make 'who' and 'banstr' direct
+       arrays, rather than pointers.
+
+       * ircd/channel.c (bans_alloc): New variable to count number of ban
+       structures allocated.
+       (bans_inuse): New variable to count number of ban structures
+       currently in use.
+       (set_banmask): Adapt to changes in struct Ban.
+       (make_ban): Likewise, and update ban counts.
+       (free_ban): Likewise.
+       (bans_send_meminfo): New function.
+       (apply_ban): Adapt to changes in struct Ban.
+       (mode_parse_ban): Likewise.
+       (mode_process_bans): Likewise.
+       (mode_parse): Likewise.
+       (RevealDelayedJoin): Fix brace placement.
+       (CheckDelayedJoins): Fix brace placement and whitespace.
+
+       * ircd/list.c (struct liststats): Add new fields to eliminate the
+       separate count variables.
+       (init_list): Adapt to those changes.
+       (alloc_client): Likewise.
+       (dealloc_client): Likewise.
+       (alloc_connection): Likewise.
+       (dealloc_connection): Likewise.
+       (make_server): Likewise.
+       (remove_client_from_list): Likewise.
+       (verify_client_list): Likewise.
+       (make_link): Likewise.
+       (free_link): Likewise.
+       (send_liststats): New function.
+       (send_listinfo): Rewrite to use new struct liststats layout.
+
+       * ircd/m_burst.c (ms_burst): Adapt to changes in struct Ban.
+
+       * ircd/m_clearmode.c (do_clearmode): Adapt to changes in struct
+       Ban.
+
+       * ircd/s_stats.c (stats_meminfo): Define unconditionally and call
+       bans_send_meminfo().
+       (statsinfo): Always give access to stats_meminfo.
+
+2005-06-16  Michael Poole <mdpoole@troilus.org>
+
+       * include/ircd_string.h: Include necessary <string.h> header.
+
+       * ircd/test/.cvsignore: Ignore log output files.
+
+       * ircd/test/Makefile.in: Remove log output files.
+
+       * ircd/test/kill-block-1.cmd: Add sleeps to try to trigger Kills.
+
+       * ircd/test/run-tests.sh: Switch sense of argument.  Send an IRC
+       debug dump to log files.
+
+2005-06-13  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_user.c (make_user): Unconditionally increment userCount.
+       (free_user): Unconditionally decrement it here.
+
+       * ircd/s_conf.c (make_conf): Unconditionally increment
+       GlobalConfCount.
+       (free_conf): Unconditionally decrement it here.
+
+       * ircd/s_debug.c (count_memory): Fix termination condition for
+       ban-walking loop.  Add missing "e" to "members".
+
+
+2005-06-10  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/match.c (check_if_ipmask): Strings that contain '?' cannot
+       be true IP masks.
+
+2005-05-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/test/Makefile.in: Add LDFLAGS variable for profiling purposes.
+
+       * ircd/test/ircd_match_t.c: Test recovery from backtracking.
+
+       * ircd/test/channel-1.cmd: Modify to improve code coverage.
+
+       * ircd/test/client-1.cmd: Likewise.
+
+       * ircd/test/gline-1.cmd: Likewise.
+
+       * ircd/test/ircd-t1.conf: Likewise.
+
+       * ircd/test/stats-1.cmd: Likewise.
+
+       * ircd/test/run-tests.sh: Explicitly start ircds.  Add new test scripts.
+
+       * ircd/test/test-driver.pl: Silently handle more signals from IRC.
+
+       * ircd/test/commands-1.cmd: New test script.
+
+       * ircd/test/feature-1.cmd: New test script.
+
+       * ircd/test/jupe-1.cmd: New test script.
+
+       * ircd/test/kill-block-1.cmd: New test script.
+
+       * ircd/test/ircd-t1-2.conf: New configuration file for test scripts.
+
+       * ircd/test/ircd-t2.conf: Likewise.
+
+2005-05-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_debug.c (count_memory): Use count_listener_memory() to
+       report memory used by listener structures.
+
+2005-05-30  Michael Poole <mdpoole@troilus.org>
+
+       * include/class.h (get_con_freq): Remove unused function.
+
+       * include/list.h (find_user_link): Remove unused function.
+
+       * include/class.c (get_con_freq): Remove.
+
+       * ircd/list.c (find_user_link): Remove.
+
+       * include/string.h (string_is_hostname, string_is_address,
+       strnChattr): Remove unused functions.
+       (init_string): Remove function that becomes a noop.
+
+       * ircd/string.h (init_string): Remove.
+       (string_is_hostname, string_is_address, strnChattr): Likewise.
+
+       * ircd/ircd.c (main): Remove call to init_string().
+
+2005-05-30  Michael Poole <mdpoole@troilus.org>
+
+       * include/numeric.h (RPL_TRACELOG, RPL_MYPORTIS,
+       RPL_NOTOPERANYMORE): Undefine unused numeric replies.
+
+       * ircd/s_err.c (replyTable): Fix format fields for certain numeric
+       arguments.  Remove some unused entries.
+
+       * ircd/s_stats.c (stats_configured_links): Move invariant
+       parameters to message format string.
+
+2005-05-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/client.c (privtab): Add missing LIST_CHAN privilege, move
+       WIDE_GLINE to reflect its enumerated value.
+
+       * ircd/s_debug.c (count_memory): Use user_count_memory() function
+       to count User structs in-use.
+
+       * ircd/m_server.c (mr_server): Change "C:line" to "Connect block".
+
+       * ircd/s_bsd.c (connect_server): Likewise.
+
+       * ircd/s_conf.c (conf_check_server): Likewise.
+
+       * ircd/s_err.c (replyTable): Change "O-lines" to "Operator block".
+
+2005-05-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/match.c (match): Rewrite to handle globs that end in an
+       escaped wildcard (and hopefully clarify the code).
+
+       * ircd/test/Makefile.in: Add new ircd_match_t test program.
+
+       * ircd/test/ircd_match_t.c: New file.
+
+       * ircd/test/test_stub.c: Emite newlines after log and debug
+       messages.
+
+2005-05-25  Reed Loden <reed@reedloden.com>
+
+       * ircd/s_err.c (replyTable): Allow for the specification of 'O' or
+       'o' in RPL_STATSOLINE.
+
+       * ircd/s_stats.c (stats_configured_links): In /stats o/O, display
+       'O' if either the oper block or the connection class has
+       PRIV_PROPAGATE (global oper) and 'o' if neither has PRIV_PROPAGATE
+       (local oper).
+
+2005-05-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/IPcheck.c: Add Debug()s to try to track why the connected
+       count underflows.
+
+       * ircd/m_endburst.c (ms_endofburst): Avoid dereferencing 'chan'
+       after it may be freed (in sub1_from_channel).
+
+       * ircd/s_user.c (register_user): Rearrange code to reduce number
+       of "if (MyConnect(sptr))" checks.
+
+2005-05-12  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: Do not try to outsmart the default CFLAGS.
+       Simply add parameters explicitly requested by the user.
+
+       * configure: Regenerate.
+
+       * ircd/ircd_crypt_native.c: Use _XOPEN_SOURCE 600 (which is
+       used in os_generic.c) to get crypt() on NetBSD.
+
+2005-05-11  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/ircd.c: if debugging is enabled (both DEBUGMODE defined and
+       -x given), reserve fd 2 for the use of the debugging log;
+       otherwise, some engines may attempt to use fd 2, which would end
+       up getting closed by debug_init() (actually, by
+       log_debug_reopen(), called by log_debug_init(), called by
+       debug_init())
+
+2005-08-10  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (joinbuf_join): Do not send a MODE +o when a
+       local user creates a channel.
+
+       * ircd/umkpasswd.c (crypt_pass): Allocate the proper amount of
+       memory for the tagged output string.
+
+       * ircd/test/test-driver.pl: Add -vhost=... option.
+
+       * ircd/test/ircd-t1.conf: Add new Operator blocks.
+
+       * ircd/test/*.cmd: Rearrange and add more coverage tests.
+
+2005-08-09  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y: Move error tokens to top level of parse, and
+       make ';' a synchronizing token for them.  This avoids crashes in
+       situations like missing ';' between two Kill blocks.  Move several
+       ';'s earlier for earlier detection of syntax errors.
+
+       * ircd/motd.c (motd_memory_count): Use size_t for memory counts to
+       match the format strings used for those variables.
+
+       * ircd/msgq.c (msgq_histogram): tmp.sizes[] is an array of
+       unsigned int, not unsigned long; use correct format string.
+
+       * ircd/s_stats.c (stats_crule_list): Restore display of 'D' vs 'd'
+       based on crule type, rather than query type.
+       (statsinfo): Remove STAT_FLAG_VARPARAM from the "modules" and
+       "help" stats, which don't use the varparam.
+
+       * ircd/test/test-driver.pl: Interpreter for test scripts.b
+
+       * ircd/test/ircd-t1.conf: Configuration file for test scripts.
+
+       * ircd/test/*.cmd: New test scripts for test-driver.pl.
+
+2005-05-08  Jukka Ollila <jaollila@niksula.hut.fi>
+       (Adapted slightly by Michael Poole.)
+
+       * ircd/os_generic.c (sockaddr_to_irc): Change to use v4compat
+       addresses event when !defined(IPV6).
+
+2005-05-07  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (joinbuf_join): Be smarter about what source to
+       use when opping a user that joins a channel.
+
+2005-05-04  Reed Loden <reed@reedloden.com>
+
+       * ircd/m_trace.c (do_trace): Show the real nickname instead of the
+       numnick.
+
+2005-05-02  Jan Krueger <jast@heapsort.de>
+
+       * ircd/channel.c (member_can_send_to_channel): if the channel can only
+       be joined by users with accounts (+r), do not allow users without
+       accounts to speak.
+
+2005-05-07  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/numnicks.c (base64toip): Fix bugs in parsing IPv6
+       addresses.
+       * ircd/test/ircd_in_addr_t.c (test_addrs): Add new entry.
+       (test_address): Test base64toip() as well.
+
+2005-05-05  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_user.c (umode_str): Only clear the operator flag when not
+       propagating; never set it.
+
+2005-05-04  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (joinbuf_join): Include channel manager flag in
+       determination of oplevel.  If opping the user for a non-local
+       non-create, include oplevel in message to other servers.  Send
+       "MODE +o <client>" to local users whenever opping the client.
+
+       * ircd/m_join.c (m_join): Remove logic that moved into
+       joinbuf_join().
+       (ms_join): Look for level 0 and 1 joins from remote servers
+       and adjust value of 'flags' appropriately.
+
+2005-05-04  Michael Poole <mdpoole@troilus.org>
+
+       * include/numeric.h: Remap oplevel numerics to new range.
+
+       * ircd/s_err.c: Likewise.
+
+2005-05-03  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_stats.c (stats_access): Update to use new CONF_CLIENT
+       fields, fixing crash found by nighty.
+
+2005-05-02  Michael Poole <mdpoole@troilus.org>
+
+       * include/numeric.h (ERR_UPASS_SAME_APASS): New error message when
+       trying to set +U pass to the same as the +A pass.
+
+       * ircd/channel.c (mode_parse_upass): Use it.
+
+       * ircd/ircd_auth.c (iauth_exit_client): Only send ExitUser if
+       there is an active IAuth connection, fixing PR#1193808.
+       (iauth_dispose_request): Only delete the timer if it is active.
+
+       * ircd/m_invite.c (m_invite): Always forward the invite in the
+       correct direction, and then skip it as 'one' if announcing.
+       (ms_invite): Likewise.
+
+       * ircd/numnicks.c (base64toip): Do not interpret AAAAAA as
+       ::ffff:0.0.0.0; keep it as ::.
+
+       * ircd/s_err.c (replyTable): Add ERR_UPASS_SAME_APASS.
+
+2005-05-01  Michael Poole <mdpoole@troilus.org>
+
+       * doc/readme.log: Document IAUTH log target, remove docs for
+       OLDLOG log target.
+
+       * include/ircd_log.h: Add LS_IAUTH target, remove LS_OLDLOG.
+
+       * ircd/ircd_log.c (logDesc): Likewise.
+
+       * ircd/engine_epoll.c (engine_loop): Handle EPOLLHUP for all
+       sockets (e.g. when connecting) and do not generate read/write
+       events in the same pass as error or EOF events.
+
+       * ircd/ircd_auth.c: Convert old sendto and debug messages to use
+       the LS_IAUTH log target.  Consistently use IAUTH_CONNECTED flag
+       instead of comparing fd to -1.
+       (iauth_reconnect): If already connected, disconnect and schedule a
+       reconnect later, since an immediate reconnect can cause assertion
+       failure in the event engine.  Also schedule a reconnect when the
+       connection attempt fails.
+       (iauth_read): Reconnect on IO_FAILURE.
+       (iauth_sock_callback): Disconnect and schedule a reconnect on both
+       error (after reporting the error) and EOF.
+       (iauth_start_client): Record the IAuth request in the client.
+       (iauth_exit_client): Report the client exit.
+
+       * ircd/s_misc.c (exit_one_client): Fix formatting.
+
+2005-04-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_auth.c (iauth_connect): Initialize (but do not add)
+       timer here and set fd to -1.
+       (iauth_schedule_reconnect): Rewrite to handle previously
+       initialized timer.
+       (iauth_reconnect): If server is connected, disconnect first.
+       Update socket generator fd before calling socket_add().
+       (iauth_read): When reading 0 bytes (EOF), reconnect.
+
+2005-04-27  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y: Report non-existent class names as errors
+       earlier, and do not fall back to "default" for Client blocks.
+
+2005-04-25  Reed Loden  <reed@reedloden.com>
+
+       * ircd/ircd_lexer.l: Add missing header to squash a warning.
+
+2005-04-25  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_user.c (register_user): Replace call with set_user_mode()
+       with a direct parsing of user modes.  To match this, revert the
+       initial display of usermode to how it was done before.
+
+2005-04-24  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf: Document new autoconnect field of Connect.
+
+       * include/s_conf.h: Add CONF_AUTOCONNECT and field for it.
+
+       * ircd/ircd.c (try_connections): Skip non-autoconnect servers.
+
+       * ircd/ircd_lexer.l: Recognize autoconnect token.
+
+       * ircd/ircd_parser.y: Add autoconnect= option to Connect block.
+
+       * ircd/m_invite.c (m_invite): Avoid sending channel timestamp to
+       user being invited.
+       (ms_invite): Likewise.
+
+       * ircd/s_user.c (register_user): Show class name rather than
+       pointer-as-integer.
+
+2005-04-24  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y: Rewrite so each error condition gets its own
+       error message, and so that invalid parameters are printed out.
+
+2005-04-23  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (apply_ban): Consistently free newban->banstr
+       when the function fails.
+       (mode_process_bans): Free banstr for all BAN_DEL bans.
+
+       * ircd/ircd_parser.y: Fix a few memory leaks from previous commit.
+
+2005-04-23  Michael Poole <mdpoole@troilus.org>
+
+       * include/patchlevel.h: Bump to being a beta.
+
+       * ircd/ircd_lexer.l (QSTRING): Return a copy of the string so that
+       parser actions don't have to be immediately after a QSTRING.
+
+       * ircd/ircd_parser.y (FNAME): Remove unused token.
+       (QSTRING): Adjust for QSTRING being an already-copied version.
+
+2005-04-23  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (UWorld): Illustrate new config extension.
+
+       * ircd/ircd_parser.y (uworldblock): Do the expected thing when
+       multiple name= entries are present.
+
+2005-04-22  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Silence exceptions use ~, not -.  Oops!
+
+       * doc/example.conf: Fix typo in example Kill block.
+
+       * ircd/channel.c (mode_parse_ban): Use correct test for flag_p.
+
+       * ircd/m_silence.c (apply_silence): Make mask pretty so that later
+       processing does not convert * to @ (and match no one).
+
+2005-04-21  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/m_userip.c (userip_formatter): /userip should *never*
+       report the user's real IP unless its answering the user
+       him/herself
+
+       * ircd/m_userhost.c (userhost_formatter): /userhost should *never*
+       report the user's real host unless its answering the user
+       him/herself
+
+2005-04-20  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd.c (parse_command_line): Update usage text.
+
+       * ircd/numnicks.c (base64toip): Use v4mapped address range instead
+       of v4compat address range, fixing IPv4-based /who.
+
+2005-04-19  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: When --enable-profile, add -pg to LDFLAGS.
+
+       * configure: Regenerate.
+
+2005-04-19  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/match.c (check_if_ipmask): Fix brown-paper-bag typo.
+
+       * ircd/s_conf.c (conf_debug_iline): Look for matching Kill blocks
+       once a matching Client block is found.
+
+       * ircd/m_whowas.c (m_whowas): Change strcmp() to ircd_strcmp().
+
+2005-04-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/match.c (check_if_ipmask): Do not interpret masks that
+       start with . or / as IP-based host masks.
+
+2005-04-17  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (mode_process_clients): Only prohibit deops of
+       users with the same or higher oplevel where apass is set.
+       Likewise, when opping users, give them MAXOPLEVEL for non-apass
+       channels.
+       (joinbuf_join): Give new ops MAXOPLEVEL for non-apass channels.
+
+       * ircd/m_kick.c (m_kick): Only prohibit kicks of users with the
+       same or higher oplevel where apass is set.
+
+       * ircd/s_user.c (register_user): Fix order of server version vs
+       various mode strings.
+
+       * tools/linesync/linesync.sh: Add revision id field.
+
+2005-04-17  Michael Poole <mdpoole@troilus.org>
+
+       * tools/linesync/linesync.sh: Fix typo comment.  Check for
+       multiple blocks per line in the linesync input.
+
+2005-04-17  Dan <daniel@undernet.org>
+
+       * tools/linesync/linesync.sh: Update to support new syntax and to
+       avoid rehashing the ircd when the config is the same.
+
+       * tools/linesync/linesync.conf: Update allowed conf items.
+
+2005-04-16  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Kill): Document newly supported syntax.
+
+       * include/s_conf.h (DenyConf): Split realname mask into its own
+       field.  Remove the unused DENY_FLAGS_{IP,REALNAME}.
+
+       * ircd/ircd_parser.y (Kill): Only require one of usermask,
+       hostmask, realmask to be set for a valid block.
+       (killitem): Add new production killusername.
+
+       * ircd/s_conf.c (conf_erase_deny_list): Free realmask field.
+       (find_kill): Rearrange slightly to clarify control flow.
+
+       * ircd/s_err.c (RPL_STATSKLINE): Stick usermask before hostmask,
+       so the old usermask field can be adopted for realname mask.  Add
+       double quotes around the realmask field.
+
+       * ircd/s_stats.c (report_deny_list): Do so.
+       (stats_klines): Likewise.
+
+2005-04-17  Perry Lorier <isomer@undernet.org>
+       
+       * tools/convert-conf.py: Fix lots of conversion problems with
+       oper privielges (now they are converted), 
+       features (deprecated features commented out, most converted to
+       priviliges), 
+       realname klines (also add host= lines)
+       quarintines (generate blocks for them), 
+       connect blocks (don't generate empty port config lines)
+       etc...
+
+2005-04-16  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/gline.c (do_gline): Fix typo when activating IP-based
+       G-lines.
+
+2005-04-16  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/class.c (free_class): Free default_umode field.
+
+       * ircd/ircd_parser.y (classblock): Free default_umode field before
+       overwriting it.
+
+       * ircd/s_conf.c (free_conf): Free username, origin_name, hub_limit
+       fields.
+       (find_kill): Realname Kill blocks no longer have $R at the start,
+       so do not skip over the first two characters of the mask.
+
+2005-04-15  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Operator): Properly qualify plaintext password.
+       (Quarantine): Document (new) syntax.
+
+       * ircd/ircd.c: Add <sys/time.h> to make <sys/resource.h> compile
+       correctly on BSDs.
+
+       * ircd/ircd_parser.y (qconf): Remove global variable.
+       (killuhost): Null terminate username when present.
+       (quarantineblock): Replace with a syntax that works.
+
+       * ircd/s_stats.c: #include <querycmds.h> for UserStats.
+       (stats_server_verbose): Reinstate check for UserStats.
+
+2005-04-09  Kevin L. Mitchell  <klmitch@mit.edu>
+
+       * ircd/ircd.c: conditionally include sys/resource.h; otherwise,
+       RLIMIT_CORE will not be defined and so set_core_limit() will never
+       be defined, much less run.
+
+       * configure.in: add sys/resource.h to the list of headers to
+       search for
+
+       * configure: regenerate configure
+
+       * config.h.in: rerun autoheader to add HAVE_SYS_RESOURCE_H to
+       config.h.in
+
+2005-04-08  Michael Poole <mdpoole@troilus.org>
+
+       * include/s_conf.h (conf_debug_iline): Declare new function.
+
+       * ircd/ircd.c (dbg_client): New file-scoped variable.
+       (parse_command_line): Set it from the new -c option.
+       (main): If dbg_client is set during chkconf, use it.
+
+       * ircd/ircd_string.c (ircd_aton): Generate IPv4-mapped addresses,
+       not IPv4-compatible addresses, to match ipmask_parse().
+
+       * ircd/m_whowas.c (m_whowas): Split display of real host to a
+       separate line, in hopes of not confusing opers in the future.
+
+       * ircd/s_conf.c (conf_debug_iline): Implement new function.
+
+2005-04-06  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_burst.c (ms_burst): Clear channel manager bit when wiping
+       out locally opped and voiced channel members.
+
+2005-04-06  Michael Poole <mdpoole@troilus.org>
+
+       * include/numeric.h (RPL_APASSWARN): Replace with three distinct
+       values.
+       (ERR_NOMANAGER_LONG): Assign new numeric.
+       (ERR_NOMANAGER_SHORT): Assign new numeric.
+
+       * ircd/channel.c (parse_mode_upass): Adapt to new formats for
+       ERR_NOTMANAGER separation.
+       (parse_mode_apass): Likewise.  Also adapt to RPL_APASSWARN split.
+
+       * ircd/s_err.c (RPL_APASSWARN): Replace with three message
+       strings, to avoid embedding long message strings in the logic
+       implementation.
+       (ERR_NOTMANAGER): Likewise (but not the same strings).
+
+2005-04-06  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y (clientblock): Use the password field.
+
+       * ircd/s_user.c (register_user): Allow aconf->password to be a
+       single digit, since per-IP limit is now in a separate field.
+
+2005-04-06  Michael Poole <mdpoole@troilus.org>
+
+       * acinclude.m4 (unet_PIPE_CFLAGS): Remove; -pipe is obsolete in
+       current gcc releases and is slower than files for previous
+       releases on most OSes.
+
+       * configure.in (AC_PREREQ): Bump to 2.59 because of AS_HELP_STRING.
+       (unet_PIPE_CFLAGS): Remove use of macro.
+
+       * aclocal.m4: Regenerate.
+
+       * configure: Likewise.
+
+2005-04-04  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: For developers' ease, allow passing an option to
+       configure to persistently set optimization CFLAGS.
+
+       * configure: Regenerate.
+
+2005-04-04  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Jupe): Make the default Jupe block follow
+       CFV-0255.  (Thanks to FrankP for pointing me at this and to DinTn
+       for getting me a copy of the CFV.)
+
+2005-04-04  Michael Poole <mdpoole@troilus.org>
+
+       * include/capab.h (CAPFL_STICKY): Define.
+       (CAPLIST): Remove the entries used for testing.
+
+       * include/client.h (Connection): Clarify comment about the
+       distinction between con_capab and con_active.
+
+       * ircd/m_cap.c: Add doxygen comments and replace the long
+       discussion of m_handler functions with an xref to it.
+       (send_caplist): Add new parameters and change the terminal vs
+       non-terminal line distinction to make compliant with current draft
+       specification.
+       (cap_empty): Rename to cap_ls().
+       (cap_req): Track modified capabilities bitwise, so that the
+       responding ACK contains all the appropriate flags.
+       (cap_ack): Add comment explaining why there is no response.
+       (cap_clear): Build and send a list of cleared capabilities, as
+       required by the current draft.
+       (cap_list): Send capability list using LIST subcommand.
+       (cmdlist): Add handler for LS subcommand.  Remove entries for the
+       empty and LSL subcommands, which are no longer allowed.
+       (m_cap): Require at least one argument from user.
+
+2005-04-01  Michael Poole <mdpoole@troilus.org>
+
+       * include/s_conf.h (SMAP_FAST): Define.
+       (s_map): Add 'flags' field.
+
+       * ircd/ircd_lexer.l: Recognize 'FAST' token.
+
+       * ircd/ircd_parser.y (FAST): New token.
+       (pseudoitem): Add pseudoflags alternative.
+       (pseudoflags): New production, recognizing FAST token.
+
+       * ircd/parse.c (register_mapping): Set MFLG_SLOW conditionally.
+       Remove outdated comment.
+
+2005-04-01  Michael Poole <mdpoole@troilus.org>
+
+       * include/handlers.h (ms_privs): Declare.
+
+       * include/msg.h (TOK_PRIVS): Assign token.
+       (CMD_PRIVS): Define.
+
+       * ircd/m_privs.c: Add doxygen comments and replace the long
+       discussion of m_handler functions with an xref to it.
+       (mo_privs): Forward requests for non-local users
+       to their own server.
+       (ms_privs): Implement.
+
+       * ircd/parse.c (PRIVS): Dispatch to ms_privs when a server sends
+       the message.
+
+2005-03-30  Michael Poole <mdpoole@troilus.org>
+
+       * include/client.h (struct Client): Explain where cli_username
+       comes from.
+
+       * include/struct.h (struct User): Explain where this username
+       comes from, too
+
+       * ircd/ircd_res.c (timeout_resolver): Update parameter name in
+       Doxygen comment, too.
+
+       * ircd/s_misc.c (get_client_name): Reorganize to have less
+       indentation and behave like 2.10.11 when client is not idented.
+
+2005-03-29  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf: Remove no-longer-used HIS_STATS_h.
+
+       * doc/readme.features: Likewise.
+
+       * include/ircd_features.h: Likewise.
+
+       * ircd/ircd_features.c: Likewise.
+
+2005-03-20  Reed Loden <reed@reedloden.com>
+
+       * include/ircd_features.h: Alphabetize HIS_STATS_? features.
+
+       * ircd/ircd_features.c: Likewise.
+
+2005-03-29  Michael Poole <mdpoole@troilus.org>
+       (The previously unapplied part of another patch (by Carlo Wood?).)
+
+       * ircd/m_part.c (ms_part): Remove a check that should already be
+       done by the user's own server.
+
+2005-03-29  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf: Add HIS_STATS_J entry.
+
+       * doc/readme.features: Likewise.
+
+2005-03-25  Reed Loden <reed@reedloden.com>
+
+       * include/hash.h: Add needed prototypes for new
+       stats_nickjupes() function.
+
+       * include/ircd_features.h: Add FEAT_HIS_STATS_J.
+
+       * include/numeric.h: Add RPL_STATSJLINE (222) for new nick
+       jupes stats. Correct a typo in a comment.
+
+       * ircd/hash.c: Add stats_nickjupes() function to report all
+       nick jupes to an oper. Because of the nature of hash tables,
+       there is no way to sort this list so the results look weird.
+
+       * ircd/ircd_features.c: Add FEAT_HIS_STATS_J (default: TRUE).
+
+       * ircd/s_err.c: Add RPL_STATSJLINE (222) for new nick jupes
+       stats.
+
+       * ircd/s_stats.c: Add RPL_STATSJLINE (222) for new nick jupes
+       stats. Make 'j' case sensitive. Modify the comment for stats
+       uworld.
+
 2005-03-27  Michael Poole <mdpoole@troilus.org>
 
        * ircd/m_burst.c (ms_burst): Do not send numeric oplevels in a -A