+2005-09-01 Michael Poole <mdpoole@troilus.org>
+
+ * RELEASE.NOTES: Bump revision date and highlight this change.
+
+ * include/channel.h (MAGIC_OPER_OVERRIDE): Remove.
+ (can_join): Remove declaration.
+
+ * ircd/channel.c (compall): Remove.
+ (can_join): Remove.
+
+ * ircd/m_join.c (m_join): Remove redundant check for control
+ characters (clean_channelname() will get them). Reorganize initial
+ flags calculation. Accept channel keys like RFC 1459 says; this
+ requires the old compall()/can_join() logic to modify 'keys', so
+ inline the code and reorganize it.
+
+2005-08-30 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.h (PASSLEN): Remove; use KEYLEN instead.
+
+ * ircd/channel.c (mode_parse_upass): Likewise.
+ (mode_parse_apass): Likewise.
+ The inconsistency (in clean_key()) was reported by Reed.
+
+2005-08-30 Michael Poole <mdpoole@troilus.org>
+
+ * RELEASE.NOTES: Document +D and +d channel modes.
+
+2005-08-29 Michael Poole <mdpoole@troilus.org>
+
+ * include/numeric.h (ERR_NOMANAGER_LONG): Undefine.
+ (ERR_NOMANAGER_SHORT): Rename to ERR_NOMANAGER.
+
+ * ircd/s_err.c (replyTable): Change to reflect that.
+
+ * ircd/channel.c (clean_key): New function.
+ (mode_parse_key): Use it, and check that keys do not start with :.
+ (mode_parse_upass): Likewise, and adjust for ERR_NOMANAGER.
+ (mode_parse_apass): Likewise.
+ The key and password changes fix bugs reported by coekie.
+
+2005-08-27 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (add_user_to_channel): Use SetOpLevel() instead
+ of assigning directly to member->oplevel.
+ (mode_parse_apass): Likewise.
+ (mode_process_clients): Users opped by outsiders should get
+ oplevel 1, since they are not channel managers.
+
+ * ircd/m_burst.c (ms_burst): Use SetOpLevel() instead of assigning
+ directly to member->oplevel.
+
+2005-08-25 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (member_can_send_to_channel): At coekie's
+ suggestion, disallow channel manager talking after Apass is set,
+ so they set and use Upass sooner.
+
+ * ircd/class.c (init_class): Default class should have 1 link.
+ (report_classes): Return links count minus one to match old output.
+
+ * ircd/m_trace.c (do_trace): Fix links count here, too (spotted by
+ Reed).
+
+2005-08-25 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (mode_parse): Accept +A/+U from servers
+ regardless of FEAT_OPLEVELS.
+
+2005-08-24 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd.c (parse_command_line): Mention epoll engine when run
+ with -v.
+
+2005-08-24 Michael Poole <mdpoole@troilus.org>
+
+ * include/patchlevel.h (PATCHLEVEL): Increment.
+
+ * ircd/channel.c (joinbuf_join): Double check that oplevel is 0 or
+ 1 when propagating JOIN <level>:#channel, to avoid PV on receiver.
+
+ * ircd/engine_epoll.c: Add system call numbers for more CPU types.
+
+ * ircd/ircd_log.c (log_open): Remove NFS-oriented alarm() calls;
+ anyone who writes logs over NFS is mental. (Thanks to D. Bruce.)
+
+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