Author: Isomer <isomer@undernet.org>
[ircu2.10.12-pk.git] / ChangeLog
index 038041e75864a6907f49dd2dc7165d63b29a1d6b..189441fb7f7358474c21a373eca898af8493c954 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,957 @@
+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
+       channel when forwarding a channel burst line.
+
+2005-03-25  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_server.c (set_server_flags): New function.  Unlike the
+       old code, this recognizes the IPv6 flag.  (Spotted by Reed.)
+       (mr_server): Use the new function.
+       (ms_server): Likewise.  Also don't show "Net junction:" message if
+       any closer server is still bursting (also spotted by Reed).
+       Finally, forward the +6 flag to other servers.
+
+       * ircd/s_serv.c (server_estab): Forward the +6 flag here, too.
+
+       * ircd/s_bsd.c (client_sock_callback): Re-set cli_error() after it
+       may be cleared by completed_connection().
+
+2005-03-23  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_burst.c (ms_burst): Remove limit and keys when a channel
+       is wiped out during burst.
+
+2005-03-22  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_res.c (check_resolver_timeout): I give up.  Use the
+       kludgy earlier version of the timeout fix.
+
+2005-03-22  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (send_channel_modes): Fix test for when to send
+       membership mode suffix, to avoid sending it more than once.
+
+2005-03-22  Michael Poole <mdpoole@troilus.org>
+       (Many thanks to nex and Reed for helping hunt this down and
+       doing the testing of various patches.)
+
+       * ircd/ircd_events.c (timer_chg): Properly change a timer that is
+       in the middle of executing its expiration event.
+
+       * ircd/ircd_res.c (check_resolver_timeout): Simplify the test for
+       whether to use timer_chg() or timer_add().
+       On second thought, use timer_add() unconditionally; the server
+       connection loop does.
+       (timeout_resolver): Do not try to re-schedule the DNS timeout
+       unless it is the expiration event.
+       (do_query_number): Properly initialize request->state.
+       (res_readreply): Mention the response code that was bad.
+
+2005-03-22  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/engine_kqueue.c (engine_delete): The kernel removes
+       close()'d FDs from the activity list, so don't try to remove the
+       FD here (the caller may have already close()'d it).
+
+2005-03-20  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/IPcheck.c: Fix typos in comments and strings to reduce
+       future slumming for credit.
+
+       * ircd/channel.c, ircd/crule.c, ircd/engine_epoll.c: Likewise.
+       * ircd/fileio.c, ircd/hash.c, ircd/ircd.c: Likewise.
+       * ircd/ircd_auth.c, ircd/ircd_crypt.c: Likewise.
+       * ircd/ircd_crypt_native.c, ircd/ircd_crypt_smd5.c: Likewise.
+       * ircd/ircd_features.c, ircd/ircd_log.c: Likewise.
+       * ircd/ircd_parser.y, ircd/ircd_res.c: Likewise.
+       * ircd/ircd_reslib.c, ircd/ircd_string.c, ircd/list.c: Likewise.
+       * ircd/m_burst.c, ircd/m_clearmode.c, ircd/m_destruct.c: Likewise.
+       * ircd/m_invite.c, ircd/m_ison.c, ircd/m_kill.c: Likewise.
+       * ircd/m_server.c, ircd/m_squit.c, ircd/m_topic.c: Likewise.
+       * ircd/m_who.c, ircd/m_whois.c, ircd/m_whowas.c: Likewise.
+       * ircd/match.c, ircd/msgq.c, ircd/numnicks.c: Likewise.
+       * ircd/os_generic.c, ircd/parse.c, ircd/s_auth.c: Likewise.
+       * ircd/s_bsd.c, ircd/s_conf.c, ircd/s_debug.c: Likewise.
+       * ircd/s_misc.c, ircd/s_numeric.c, ircd/s_serv.c: Likewise.
+       * ircd/s_stats.c, ircd/s_user.c, ircd/table_gen.c: Likewise.
+       * ircd/umkpasswd.c, ircd/uping.c, ircd/whowas.c: Likewise.
+
+       * ircd/test/test_stub.c: Make exit_client() argument list
+       consistent with that in s_misc.c so doxygen is not confused.
+
+2005-03-20  Michael Poole <mdpoole@troilus.org>
+       (Thanks to Reed Loden for pointing these out.)
+
+       * ircd/channel.c: Fix typos in comments.
+
+       * ircd/m_create.c: Likewise.
+
+       * ircd/m_list.c: Likewise.
+
+       * ircd/m_names.c: Likewise.
+
+       * ircd/numnicks.c: Likewise.
+
+       * ircd/s_bsd.c: Likewise.
+
+2005-03-20  Michael Poole <mdpoole@troilus.org>
+       (Thanks to Reed Loden for pointing these out.)
+
+       * doc/Configure.help: Remove outdated file.
+
+       * doc/exaconf.2: Likewise.
+
+       * doc/snomask.html: Add missing <tr>, SNO_AUTO, SNO_DEBUG, and
+       update SNO_OPERDEFAULT list.
+
+       * tools/mkpasswd.c: Remove outdated file (use ircd/umkpasswd
+       instead).
+
+       * tools/Makefile.crypt: Remove outdated file.
+
+       * tools/mkpasswd.c: Likewise.
+
+       * tools/transition: Likewise.
+
+2005-03-19  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (sub1_from_channel): Check apass rather than mode
+       to determine whether an apass is set (MODE_KEY/APASS/UPASS are not
+       set in mode.mode).
+       (send_channel_modes): Use the same change when determining how to
+       send oplevels for channels.
+
+2005-03-19  Michael Poole <mdpoole@troilus.org>
+
+       * include/IPcheck.h (IPcheck_connect_fail): Take a Client
+       parameter instead of irc_in_addr.
+
+       * ircd/IPcheck.c (IPcheck_connect_fail): Likewise.  Assert that
+       the client has been IP-checked.
+       (IPcheck_remote_connect): Assert that the client has not yet been
+       charged for connecting.
+       (IPcheck_connect_succeeded): Assert that the client has been
+       charged for connecting.
+       (IPcheck_disconnect): Likewise.
+
+       * ircd/m_nick.c (m_nick): Pass rejected client to
+       IPcheck_connect_fail() when somebody takes the nick first.
+       (ms_nick): Likewise.
+
+       * ircd/s_serv.c (server_estab): Pass new server to
+       IPcheck_connect_fail().
+
+       * ircd/s_user.c (register_user): When rejecting a user, pass
+       the struct Client to IPcheck_connect_fail().
+
+2005-03-19  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Connect): Remove a buggy comment about leaf
+       directives; refer the reader to the Connect block instead.
+
+       * tools/convert-conf.py: Set "leaf;" rather than "leaf = yes;"
+
+2005-03-19  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Operator): Correct the comment explaining
+       hashed passwords.
+
+       * ircd/m_oper.c (oper_password_match): Check correct variable to
+       determine whether the hashed password matched.
+
+2005-03-08  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/match.c (ipmask_parse): Explicitly zero-initialize the mask
+       and bit count for "*".
+       (ipmask_check): Make more robust to similar errors.
+
+2005-03-07  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: Consistently use a constant in AC_DEFINE().
+
+       * configure: Regenerate.
+
+       * doc/example.conf (Port): Add comment about the mask option.
+       (Port): Fix the vhosted Port example.
+
+       * ircd/ircd_parser.y (clientblock): Correctly initialize the IP
+       address and addrbits for a Client block with no IP mask.
+
+       * ircd/match.c (ipmask_parse): Accept * as a zero-bit mask.
+
+       * ircd/s_auth.c (start_auth_query): Count socket allocation
+       failure as a failed auth check, as .11 does.
+
+       * ircd/s_debug.c (debug_serveropts): Add '6' to server options
+       when compiled with IPv6 support.
+
+2005-02-23  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf: Explain apass_opmode privilege, pointing out
+       that, unlike previous privs, the default is OFF for global opers.
+
+       * include/client.h (PRIV_APASS_OPMODE): Define new privilege.
+
+       * ircd/channel.c (mode_parse_upass): Only prevent local opers
+       without the apass_opmode privilege from forcing a +U change.
+       (mode_parse_apass): Likewise, for +A.
+
+       * ircd/client.c (client_set_privs): Turn off PRIV_APASS_OPMODE in
+       the default privileges for global opers.
+
+       * ircd/ircd_lexer.l (apass_opmode): Recognize keyword.
+
+       * ircd/ircd_parser.y (TPRIV_APASS_OPMODE): New token.
+       (privtype): Fix typo for local_badchan privilege value.
+       Accept apass_opmode token.
+
+2005-02-23  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf: Fix comment's description of "whox" privilege.
+
+2005-02-21  Michael Poole <mdpoole@troilus.org>
+
+       * include/channel.h (ShowChannel): Remove PRIV_LIST_CHAN check
+       from here, so /whois does not show secret global channels.
+
+       * ircd/m_list.c (param_parse): Require PRIV_LIST_CHAN to use
+       "/list s".
+       (m_list): Allow opers with PRIV_LIST_CHAN to see secret channels.
+
+2005-02-21  Perry Lorier <isomer@undernet.org>
+
+       * ircd/s_stats.c: Hide the hub IP's.  They're kinda important.
+
+2005-02-20  Perry Lorier <isomer@undernet.org>
+
+       * ircd/ircd_parser.y: Moved some parse errors from log_write()'s to
+       parse_error()'s so that ./ircd -k will display them.  Also clarified
+       the warning about oper blocks.
+
+2005-02-20  Perry Lorier <isomer@undernet.org>
+
+       * tools/convert-conf.py: A multitude of changes to deal with parsing
+       mistakes, generate a newer config file, better error handling,
+       being smarter about what config elements you generate etc.
+       
+2005-02-20  Perry Lorier <isomer@undernet.org>
+
+       * ircd/engine_epoll.c: Change a size_t to socklen_t to match
+       getsockopt prototype, so it compiles without warning on amd64
+
+2005-02-19  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y (clientblock): Parse IP address before
+       allocating ConfItem; if the parse fails, generate an error.
+
+       * ircd/s_err.c (RPL_STATSCLINE): Add format field to prefix IPv6
+       addresses starting with ':'.
+       (RPL_STATSILINE): Likewise.
+       (RPL_STATSOLINE): Add format field for username.
+
+       * ircd/s_stats.c (stats_configured_links): Pass the appropriate
+       argument for the RPL_STATSxLINE changes.
+       Change RPL_STATSILINE to use * instead of <NULL> when IP or host
+       is null.
+
+2005-02-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/IPcheck.c (ip_registry_find): Use canonical form of IP
+       address to look up and compare against hash entries.
+
+       * ircd/channel.c (apply_ban): Do not free a succesful BAN_DEL ban.
+
+       * ircd/ircd_parser.y (clientblock): Stash IP string in aconf->name.
+       (clienthost): Split hosts that contain '@' into username and host.
+       (clientip): Split IPs that contain '@' into username and IP.
+       (killreason): Add missing ~ to mask off DENY_FLAGS_FILE.
+
+       * ircd/m_silence.c (forward_silences): When we reject a silence,
+       splice it out of the ban list.  Warn the user if he is local.
+
+       * ircd/s_bsd.c (connect_inet): Set IP TOS for outbound server
+       connections.
+
+       * ircd/s_stats.c (stats_configured_links): Display correct field
+       when listing CONF_UWORLD entries.
+
+2005-02-09  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in (YACC): Only warn if we cannot get a version number
+       from $YACC.
+
+       * configure: Regenerate.
+
+       * ircd/ircd_res.c (check_resolver_timeout): Try another way to
+       avoid timer_chg() on a non-queued/active timer.
+
+       * ircd/ircd_string.c (ircd_aton): Set part_start to handle input
+       strings like "::127.0.0.1".
+
+       * ircd/test/ircd_in_addr_t.c (test_addrs): Add a test for that.
+
+2005-02-02  Michael Poole <mdpoole@troilus.org>
+
+       * Makefile.in (install): Do not create ${prefix}/include since it
+       is no longer used.
+
+       * ircd/Makefile.in (install-*): Remove commented-out code to touch
+       and chown MPATH and RPATH.
+
+       * ircd/gline.c (gline_find): Allow searching for host-based
+       G-lines by plain hostname (not *@host), thus preventing "GLINE
+       test ..." from inserting duplicate G-lines.
+
+       * ircd/motd.c (motd_create): Null out new Motd's hostmask when
+       appropriate, avoiding an uninitialized or stale pointer.
+
+2005-01-26  Michael Poole <mdpoole@troilus.org>
+
+       * include/ircd_alloc.h (DoMallocZero): Parenthesize macro
+       arguments, fixing operator precedence problems.
+       (DoFree): Make debug version also overwrite p.
+
+       * include/memdebug.h (fda_get_byte_count, fda_get_block_count):
+       Declare functions used outside memdebug.c.
+
+       * ircd/Makefile.in (UMKPASSWD_SRC): Add memdebug.c.
+
+       * ircd/ircd_alloc.c (DoMalloc, DoMallocZero, DoRealloc): Do not
+       use these if using the memdebug version.
+
+       * ircd/memdebug.c: #include "send.h" and <string.h> to get
+       declarations for certain functions.
+
+       * ircd/umkpasswd.c (CurrentTime): Define in case of memdebug.
+       (sendto_opmask_butone): Likewise.
+
+2005-01-25  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: Fix typos and thinkos in previous commut.
+
+       * configure: Regenerate.
+
+       * doc/example.conf: Change class name in Connect block to be
+       consistent with earlier Class block.
+
+       * ircd/ircd.c (try_connections): Consider Connect blocks with hold
+       time of 0.  Fix Links() vs MaxLinks() comparison to reflect ref
+       count starting at 1.
+
+       * ircd/ircd_parser.y (cruleblock, iauthblock): Clear unused
+       variables after use.
+
+2005-01-24  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: Make sure that $LEX and $YACC are reasonable and
+       actually run.
+
+       * configure: Regenerate.
+
+       * ircd/ircd_res.c (check_resolver_timeout): Use correct macro to
+       test whether the timer is already pending.
+
+2005-01-23  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Kill): Fix typo in realname Kill block
+
+       * include/client.h (infousermodes): Fix typo in comment.
+
+       * ircd/ircd.c (parse_command_line): -k implies BOOT_TTY.
+       (main): Move daemon_init() before event_init() to work around BSD
+       lameness.
+
+2005-01-23  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/test/Makefile.in: Add missing "install" target.  Make
+       compatible with BSD make (which has no $^ and no $(CPPFLAGS) in
+       its default .c.o rule).
+
+2005-01-21  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/engine_kqueue.c: Move <sys/types.h> earlier to fix build on
+       FreeBSD 5.x (which needs it for <sys/event.h>).
+
+       * ircd/fileio.c (fbopen): Replace BSDism S_IREAD, S_IWRITE with
+       portable equivalents.
+
+       * ircd/ircd_log.c (log_open): Likewise.
+
+       * ircd/os_generic.c (_XOPEN_SOURCE): Increase to 600 (SuSv3?) so
+       that IPv6 definitions become visible on FreeBSD 5.3.
+
+       * ircd/s_auth.c: Remove apparently unused <sys/file.h> because
+       it fails to compile on FreeBSD 5.3.
+
+2005-01-22  Perry Lorier <isomer@undernet.org>
+
+       * ircd/ircd_parser.y: Fix missing ;
+
+2005-01-19  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_invite.c (m_invite, ms_invite): Include timestamp in
+       outbound INVITE messages.  On incoming INVITEs, ignore if the
+       timestamp is too recent or if the timestamp is missing and the
+       peer server is in burst.
+
+2005-01-15  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Mention CIDR support for Client, Operator, bans
+       and silences.  Mention net.rider kick change.
+
+       * doc/example.conf (Class): Add documentation for restart and
+       local_opmode privileges.  Fix name of local_jupe privilege.
+
+       * ircd/ircd_lexer.l: Recognize local_opmode privilege.
+
+2005-01-14  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Further updates (mention Pseudo blocks, clarify
+       CAP comment, mention named /stats, list config heteromorphisms.
+
+       * doc/readme.features: Document HIS_STATS_a, HIS_STATS_L,
+       HIS_STATS_R, LOCAL_CHANNELS, TOPIC_BURST.
+
+       * ircd/channel.c (mode_parse_apass): Change old mention of +u mode
+       to say +U.
+
+2005-01-13  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Update for 2.10.12.
+
+2005-01-08  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (@page zombie): Add synopsis to explain what
+       zombies are supposed to do.
+
+       * doc/example.conf (Features): Transfer recommended LOG features
+       from 2.10.11 example.conf.
+
+2005-01-03  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd.c (try_connections): Test Connect hold time before
+       updating it (spotted by Kev).
+
+2005-01-03  Michael Poole <mdpoole@troilus.org>
+
+       * Makefile.in: Add ircd/test as a subdirectory.
+
+       * ircd/.cvsignore: Ignore umkpasswd binary.
+
+       * ircd/Makefile.in: Update dependencies.
+
+       * ircd/test/.cvsignore: New file.
+
+       * ircd/test/Makefile.in: Use ${} instead of $().  Add build,
+       depend, distclean targets to integrate with rest of build system.
+
+2005-01-03  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/IPcheck.c (ip_registry_check_remote): Do not count clones
+       that have an invalid IP address.
+
+       * ircd/ircd.c (try_connections): Update Connect hold time before
+       skipping it, to prevent infinite loops.
+
+2005-01-03  Kevin L Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_user.c (is_silenced): is_silenced() would core if sptr
+       was a server; fixed to skip servers
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * include/s_bsd.h (VirtualHost): Replace with separate variables
+       for IPv4 and IPv6 virtual hosts.
+
+       * include/uping.h (uping_echo): Remove declaration.
+
+       * ircd/ircd_auth.c (iauth_reconnect): Select VirtualHost_v4 or
+       VirtualHost_v6 based on iauth server address family.
+
+       * ircd/ircd_lexer.l: Do not recognize RESOLVER token.
+
+       * ircd/ircd_parser.y (ResolverAddr): Remove declaration.
+       (RESOLVER): Remove definition.
+       (generalresolver): Remove.
+       (generalvhost): Assign address to either VirtualHost_v4 or
+       VirtualHost_v6, depending on format.
+
+       * ircd/ircd_res.c (res_socket): Replace with separate variables
+       for IPv4 and IPv6 resolver sockets.
+       (ResolverAddr): Remove definition.
+       (restart_resolver): Attempt to set up both IPv4 and IPv6 sockets.
+       (send_res_msg): Select outbound FD based on resolver address type.
+       (res_readreply): Recognize either inbound socket FD.
+
+       * ircd/os_generic.c (sockaddr_from_irc): Require irc != NULL.
+       (os_socket): Require local != NULL.
+
+       * ircd/s_bsd.c (VirtualHost): Replace with separate variables
+       for IPv4 and IPv6 virtual hosts.
+       (connect_inet): Select virtual host based on destination address.
+
+       * ircd/uping.c (UPingFIleDescriptor): Remove.
+       (upingSock): Split into separate IPv4 and IPv6 variables.
+       (uping_echo_callback): Incorporate uping_echo() body here, so the
+       proper socket FD can be used.
+       (uping_init): Attempt to set up both v4 and v6 UPING sockets.
+       (uping_server): Create uping socket with appropriate local address.
+
+       * doc/example.conf (General): Update example config file to
+       reflect removal of Resolver setting and support for separate IPv4
+       and IPv6 VHost settings.
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/sys.h (BITS_ZERO_ON_*, HAVE_RELIABLE_SIGNALS, DOCURSES,
+       DOTERMCAP, IRC_UID, IRC_GID, LIMIT_FMT, FALSE, TRUE): Remove
+       unused macros.
+
+       * ircd/ircd_auth.c, ircd/listener.c, ircd/s_auth.c, ircd/s_bsd.c,
+       ircd/s_conf.c, ircd/uping.c, ircd/whocmds.c: Remove obsolete
+       #include <arpa/inet.h>.
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/match.c: Remove obsolete #include <arpa/inet.h>.
+       (ipmask_parse_ipv4): We already parse the dotted quads from the
+       input string, so use them instead of inet_addr() to populate
+       out->s_addr.
+
+       * ircd/gline.c: Remove obsolete #includes <arpa/inet.h>, "sys.h".
+       (do_gline): Pass SHOW_IP instead of TRUE as argument to
+       get_client_name().
+
+       * ircd/ircd.c (try_connections): Revise to use fewer temporary
+       variables.
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * include/res.h: Implement irc_in_addr_* as macros.
+
+       * ircd/ircd_res.c: Remove the function bodies.
+
+       * ircd/ircd_string.c (irc_in_addr_is_ipv4): Remove body.
+       (ircd_ntoa_r): Do not append extra ':' when unparsing 0::.
+       (ircd_aton): Accept IPv6 addresses with all eight segments
+       specified (e.g. 0:0:0:0:0:0:0:0).  Correctly parse addresses
+       with IPv4 bits at the end (e.g. ::FFFF:127.0.0.1).
+
+       * ircd/test/ircd_in_addr_t.c, ircd/test/test_stub.c: New files.
+
+       * ircd/test/Makefile: Convert to Makefile.in for proper VPATH
+       support.  Add test_stub.c and ircd_in_addr_t.c references.
+
+       * configure.in: Generate ircd/test/Makefile as an output file.
+
+       * configure: Update.
+
+2004-12-18  Michael Poole <mdpoole@troilus.org>
+
+       * include/client.h: Move unreg, privs, capab and active fields
+       from struct Client to struct Connection since that is how they
+       are really associated.  Adjust macros to match.
+       (SetPriv, ClrPriv): New macros.
+
+       * ircd/client.c (client_set_privs): Exit earlier for remote
+       clients.  Adjust macro use to correspond.
+
+       * ircd/m_server.c (mr_server): Grant all privileges except
+       PRIV_SET to peer servers.
+
 2004-12-18  Michael Poole <mdpoole@troilus.org>
 
        * ircd/s_user.c (hide_hostmask): Add a missing "break;" to fix bug