Fix bugs in rehashing pseudo commands and in kill handling.
[ircu2.10.12-pk.git] / ChangeLog
index 284179f8fa25954d5c1024aa54c9fd887ec52ad1..fd931fd70805d80dd08674cc1ef1feaf03fe5be9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,809 @@
+2005-08-21  Michael Poole <mdpoole@troilus.org>
+
+       * include/s_conf.h (free_mapping): Declare new function.
+
+       * ircd/ircd_parser.y (pseudoblock): Use it.
+
+       * ircd/s_conf.c (free_mapping): Define it.
+       (close_mappings): New function.
+       (rehash): Call close_mappings() before reading file.
+
+       * ircd/m_kill.c (do_kill): Revert 2005-08-18 change.
+
+2005-08-19  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/parse.c (tok_tree): Re-add token tree structure.
+       (initmsgtree): Populate it.
+       (parse_server): Prefer it to full message tree.
+
+2005-08-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_kill.c (do_kill): When FEAT_HIS_KILLWHO, change apparent
+       source of KILLs to &his instead of &me.
+
+2005-08-16  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (mode_parse_ban): Avoid overwriting part of
+       newban->banstr[] when the source is a server.  (Spotted by jcq.)
+
+2005-08-16  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (joinbuf_join): Switch to &his instead of &me for
+       announcements to local users in a channel.
+
+       * ircd/m_burst.c (ms_burst): Likewise.
+
+       * ircd/m_invite.c (m_invite): Likewise.
+       (ms_invite): Likewise.
+
+       * ircd/m_kick.c (ms_kick): Likewise.
+
+       * ircd/m_topic.c (do_settopic): Another &me -> &his change for
+       HIS, and use that apparent source for the channel localcast.
+
+2005-08-16  Jukka Ollila <jaollila@niksula.hut.fi>
+
+       * ircd/s_user.c (hide_hostmask): Use HIS_SERVERNAME instead of the
+       real thing for the post-mode-x rejoin.
+
+2005-08-15  Michael Poole <mdpoole@troilus.org>
+
+       * include/supported.h (FEATURESVALUES2): Add +d channel mode.
+
+       * ircd/IPcheck.c (ip_registry_new_entry): Clarify that this is not
+       a varadic function.  (Suggested by Ian Kumlien.)
+
+       * ircd/convert-conf.c (finish_operators): Likewise.
+
+       * ircd/listener.c (close_listeners): Likewise.
+
+       * ircd/channel.c (CheckDelayedJoins): Use HIS server name to
+       remove channel mode +d.
+
+2005-08-12  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (pretty_mask): Recognize ':' as unique to the
+       host part of a ban mask.
+
+2005-08-03  Jan Krueger <jast@heapsort.de>
+
+       * ircd/m_kick.c (m_kick): Send JOIN prior to confirming KICK on
+       invisible member.
+
+2005-08-08  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (find_ban): For non-IPmask bans, match the ban
+       string against the string form of the client's IP address.
+
+2005-07-16  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: Apply a test for socklen_t that Reed found.
+
+       * configure: Regenerate.
+
+2005-07-16  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Mention that 2.10.11 does not support oplevels.
+
+       * README.FreeBSD: Remove (merged into README).
+
+       * README.Solaris: Remove (merged into README).
+
+       * README: Merge in the above; also update for 2.10.12.
+
+       * doc/example.conf: Change mention of K-lines to say Kill blocks
+       instead.
+
+       * doc/iauth.txt: Remove (out of date).
+
+       * doc/readme.features: Update to reflect that 2.10.11 is not the
+       current release.  Change mention of various config lines to use
+       the equivalent config entries or blocks instead.
+
+       * doc/readme.log: Likewise.
+
+       * doc/api/features.txt: Change F-line mentions to say Feature
+       entry instead.
+
+       * doc/api/modebuf.txt: Change U-line mention to say Uworld entry.
+
+       * doc/api/motd.txt: Change T-line mentions to say Motd entry.
+
+2005-07-15  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_features.c (feature_init): Always call
+       feature_notify_server*() so that 'his' is initialized.
+
+       * ircd/m_whois.c (do_whois): Unswap sense of comparison to choose
+       between user->server and &his.
+
+2005-07-14  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (mode_parse_apass): Update oplevels when setting
+       or removing the +A password.  Partial credit goes to Reed Loden.
+
+2005-07-14  Michael Poole <mdpoole@troilus.org>
+
+       * include/ircd_features.h: Declare new "his" pseudo-server to hold
+       FEAT_HIS_SERVERNAME and FEAT_HIS_SERVERINFO in a convenient place.
+
+       * ircd/ircd_features.c: Initialize and update it.
+
+       * ircd/channel.c (modebuf_flush_int): Use it as the apparent
+       source for opmodes and server mode changes (also when the source
+       is me).
+
+       * ircd/m_burst.c (ms_burst): Use it as the apparent source for net
+       rider kicks.
+
+       * ircd/m_whois.c (do_whois): Use it to simplify code here.
+
+       * ircd/s_misc.c (exit_client): Use it as the apparent killer.
+
+2005-07-14  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (General): Update comment about vhost to match
+       the code change below.
+
+       * ircd/ircd_parser.y (generalvhost): Accept vhost="*"; as a
+       synonym for the default behavior (for backwards compatibility).
+       Spotted by Kev.
+
+       * ircd/channel.c (sub1_from_channel): Remove stale code and
+       comment, replacing with an up-to-date comment.  Spotted by skx.
+
+2005-07-11  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/engine_select.c: Remove outdated comment about USE_POLL.
+
+       * ircd/parse.c (msgtab): #if out CAP handler until we have caps.
+
+       * RELEASE.NOTES: Remove mention of capabilities for now.
+
+2005-07-11  Stephan Peijnik <speijnik@gmail.com>
+
+       * ircd/gline.c (gline_add): It's only a protocol violation when a
+       server issues a "whacky" gline.  If it's an oper, only tell opers
+       with SNO_GLINE.
+
+       * ircd/ircd_auth.c (iauth_protocol_violation): Likewise, the whole
+       network is not likely to care about IAuth PVs, so only tell opers
+       with SNO_CONNEXIT.
+
+2005-07-11  Michael Poole <mdpoole@troilus.org>
+
+       * doc/readme.features: Document FEAT_CHANNELLEN.
+
+       * doc/example.conf: Give an example of it.
+
+       * ircd/m_join.c (ms_join): Do not clean channel names from remote
+       servers, to avoid desynchs.
+
+       * ircd/m_names.c (ms_names): Likewise.
+
+2005-07-11  Stephan Peijnik <speijnik@gmail.com>
+
+       * include/ircd_features.h: Declare new FEAT_CHANNELLEN.
+
+       * include/supported.h: Add it to the ISUPPORT display.
+
+       * ircd/channel.c (clean_channelname): Impose the lower limit
+       between FEAT_CHANNELLEN and CHANNELLEN.
+
+       * ircd/ircd_features.c: Define FEAT_CHANNELLEN.
+
+2005-07-11  Reed Loden <reed@reedloden.com>
+
+       * include/sys.h: Move FD_SETSIZE redefinition to engine_select.c.
+
+       * ircd/s_bsd.c: Move FD_SETSIZE sanity check to engine_select.c
+       Remove unused #include <sys/poll.h>.
+
+       * ircd/engine_select.c: Put FD_SETSIZE redefinition and sanity
+       checks here, since they are not used elsewhere in the daemon.
+       [Order slightly changed by Michael Poole to compile.]
+
+2005-07-03  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/convert-conf.c: New file.
+
+       * ircd/Makefile: Compile it.
+
+2005-06-27  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_bsd.c (add_connection): Split logic for server versus
+       client listeners; only do IPcheck for client connections.
+
+       * ircd/s_serv.c (server_estab): There is no longer a need to
+       remove IPcheck reference, so don't.
+
+2005-06-27  Michael Poole <mdpoole@troilus.org>
+
+       * include/client.h (struct Connection): Remove con_dns_reply (and
+       associated macros).
+
+       * include/res.h (gethost_byname): Change calling signature to
+       clarify memory ownership.
+       (gethost_byaddr): Likewise.
+
+       * include/s_bsd.h (release_dns_reply): Remove function.
+
+       * ircd/hash.c: #include "match.h" to quash warning.
+
+       * ircd/ircd_auth.c (struct IAuth): Remove i_query field.
+       (iauth_dns_callback): Adjust for new gethost_byname signature.
+       (iauth_reconnect): Likewise.
+
+       * ircd/ircd_res.c (struct reslist): Make elements of query field
+       inline rather than in a contained structure.
+       (make_request): Reflect removal of DNSQuery.
+       (do_query_name): Likewise.
+       (do_query_number): Likewise.
+       (make_dnsreply): Remove now-unused function.
+       (timeout_resolver): Adjust to new callback signature.
+       (delete_resolver_queries): Reflect removal of DNSQuery.
+       (gethost_byname): Update to new signature.
+       (gethost_byaddr): Likewise.
+       (res_readreply): Reflect removal of DNSReply.
+
+       * ircd/list.c (dealloc_connection): con_dns_reply no longer
+       exists, so do not free it.
+
+       * ircd/s_auth.c (auth_verify_hostname): constify.
+       (auth_dns_callback): Adjust to new callback signature.
+       (start_auth): Adjust to new gethost_byaddr() signature.
+
+       * ircd/s_bsd.c (connect_dns_callback): Adjust to new callback
+       signature.
+       (release_dns_reply): Remove unused function.
+       (connect_server): Adjust to new gethost_byname() signature.
+
+       * ircd/s_conf.c (conf_dns_callback): Adjust to new callback
+       signature.
+       (conf_dns_lookup): Adjust to new gethost_byname() signature.
+       (attach_iline): Use cli_sockhost() instead of DNS reply.
+       (conf_check_server): Simplify use of DNS results.
+
+       * ircd/s_serv.c (server_estab): Remove call to removed function.
+
+       * ircd/s_user.c (register_user): Remove call to removed function.
+
+2005-06-27  Michael Poole <mdpoole@troilus.org>
+
+       * include/s_misc.h (get_sockhost): Remove the unused (and
+       deceptively named) get_sockhost().
+
+       * ircd/s_misc.c (get_sockhost): Likewise.
+
+2005-06-25  Andrew Miller  <a1kmm@amxl.com>
+
+       * ircd/ircd_crypt.c (ircd_crypt): strdup is not allowed, change to
+       DupStr so memdebug works.
+
+       * doc/debug_memleak_gc.patch : Update to gc6.5
+       
+2005-06-24  Andrew Miller  <a1kmm@amxl.com>
+       * ircd/m_invite.c (m_invite): Don't propagate invites to local channels.
+       
+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