+2004-10-18 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/gline.c (gline_find): unless we're looking for an exact
+ match, we should call match() on hostnames, not ircd_strcmp()
+
+2004-10-17 Michael Poole <mdpoole@troilus.org>
+
+ * include/s_conf.h (ConfItem): Add new field username. Replace
+ unused field bits with addrbits.
+ (find_conf_exact): Replace user and host arguments with cptr.
+ (find_conf_name, read_tlines, find_restrict): Remove declaration
+ for undefined functions.
+ (conf_parse_userhost): New function.
+
+ * ircd/m_oper.c (m_oper): Update calls to find_conf_exact(): both
+ resolved hostname and IP are matched in one pass now.
+
+ * ircd/s_bsd.c (close_connection): Update call to find_conf_exact().
+
+ * ircd/s_conf.c (conf_parse_userhost): New function.
+ (check_limit_and_attach): Use correct ConfItem field to determine
+ maximum connections per IP.
+ (attach_iline): Replace user@host matching with shorter, clearer
+ matching against username and host/IP fields.
+ (find_conf_exact): Likewise.
+
+ * ircd/ircd_parser.y: Replace assignment to aconf->host for
+ CONF_CLIENT and CONF_OPERATOR with calls the CIDR-aware
+ conf_parse_userhost(). This means CONF_CLIENT ConfItems no longer
+ use the name field or the IP token. Remove the latter.
+
+ * ircd/ircd_lexer.l: Remove unused token IP.
+
+2004-10-17 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/crule.c (crule_via): Simplify the lookup for the directly
+ connected server name.
+
+2004-10-16 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/class.c: Make find_class() return NULL for unknown classes,
+ rather than returning the start of connClassList.
+
+ * ircd/match.c (parse_ipmask): Translate IPv4 masks as
+ IPv4-compatible addresses.
+ (check_ipmask): Fix comparison of IP masks.
+
+ * ircd/motd.h, ircd/motd.c: Add a new MOTD type, MOTD_IPMASK, that
+ uses CIDR style masks in the hostname field of a Motd block.
+
+2004-10-16 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/numeric.h: Remove the unused RPL_STATMEM and
+ RPL_STATMEMTOT. Move the RPL_BOUNCE comment to its current
+ value (the former RPL_STATMEM).
+
+ * ircd/s_err.c: Remove format strings for RPL_STATMEM and
+ RPL_STATMEMTOT.
+
+2004-10-16 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_server.c: Look up server configuration by name of our
+ directly connected peer rather than the server being introduced.
+
+2004-10-13 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.h: Delete MODE_LISTED and is_listed(). Replace
+ ListingArgs.chptr with ListingArgs.bucket. Move declaration of
+ list_next_channels() to..
+
+ * include/hash.h: here, and drop the "nr" argument.
+
+ * ircd/channel.c: Remove redundant scan of local clients for
+ channels being listed. Delete list_next_channels() function.
+
+ * ircd/hash.c: Add list_next_channels() here, revising to not use
+ MODE_LISTED and to use ListingArgs.bucket instead of chptr. Also
+ decide when to stop sending RPL_LISTs based on a half-full sendq.
+
+ * ircd/m_burst.c, ircd/s_misc.c: Delete mention of MODE_LISTED.
+
+ * ircd/m_list.c: Delete mention of MODE_LISTED. Unconditionally
+ call list_next_channels(sptr).
+
+ * ircd/s_bsd.c: Remove the "nr" argument to list_next_channels().
+
+ * ircd/Makefile.in: Update dependencies (for hash.c).
+
+2004-10-13 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_parser.y: Consistently zero out global variables after
+ they are used (prevents double frees and other problems).
+
+2004-10-12 Michael Poole <mdpoole@troilus.org>
+
+ * include/client.h: Rename FLAGSET_ISSET, _SET, _CLEAR to FlagHas,
+ Set, Clr respectively. Get rid of FLAG_CHKACCESS and FLAG_LOCAL.
+ Delete con_fd (get from con_socket) and con_port. Move sentalong
+ from send.c to struct Connection, and cli_lasttime and cli_since
+ from struct Client to struct Connection. Update cli_*() macros to
+ use con_*(cli_connect(cli)).
+
+ * ircd/client.c: Replace PrivSet() with FlagSet(), PrivClr() with
+ FlagClr(), PrivHas() with FlagHas().
+
+ * ircd/ircd_parser.y: Likewise.
+
+ * ircd/list.c: Remove assignment to cli_local() since it is now a
+ calculated value.
+
+ * ircd/s_bsd.c: Remove uses of cli_port().
+
+ * ircd/s_conf.c: Remove uses of ClearAccess().
+
+ * ircd/send.c: Delete sentalong array and replace with references
+ to con_sentalong().
+
+2004-10-12 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Update example config to reflect the changes
+ made in the remainder of this patch.
+
+ * include/list.h: Make make_conf() take a type argument.
+
+ * include/s_conf.h: Delete CONF_LEAF and CONF_HUB. Add "maximum"
+ and "hub_limit" to ConfItem to compensate.
+
+ * ircd/ircd_lexer.l: Recognize MAXHOPS token.
+
+ * ircd/ircd_parser.y: Get rid of aconf global variable and add
+ hub_limit global variable. Add MAXHOPS token, and productions
+ inside connectblock to recognize it and hub masks. Allow maxlinks
+ field in a Client block, rather than overloading password field.
+ Convert serverblock to uworldblock and remove extraneous fields.
+
+ * ircd/m_server.c: Make check_loop_and_lh() look up ConfItem and
+ calculate LHcptr and active_lh_line. Merge some duplicated code
+ so handling active_lh_line cases is clearer.
+
+ * ircd/s_conf.c: Make make_conf() take a type argument. Delete
+ CONF_LEAF and CONF_HUB. Do not overwrite server name with what
+ is specified in the config file.
+
+ * ircd/s_err.c: Remove the unused RPL_STATSNLINE and
+ RPL_STATSHLINE. Remove useless parameters and format fields from
+ RPL_STATSCLINE, RPL_STATSILINE, RPL_STATSLLINE, RPL_STATSOLINE and
+ RPL_STATSULINE.
+
+ * ircd/s_serv.c: Delete CONF_LEAF and CONF_HUB.
+
+ * ircd/s_stats.c: Get rid of report_array and make
+ stats_configured_links() directly use RPL_STATSxLINE (adding the
+ new fields for Server and Client blocks). Remove /stats h, since
+ that has no meaning.
+
+2004-10-12 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_burst.c: Mask off channel modes in a wiped-out channel by
+ default rather than by listing which should be wiped out.
+
+2004-10-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_server.c: Forward port checks for leaf and hub config
+ rules, and reorganize mr_server() and ms_server() by moving out
+ common code. Add doxygen comments for the file.
+
+2004-10-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/hash.c: Fix thinko in hash function: It is not indexed
+ simply by character value, so we cannot just remap the values
+ by case.
+
+2004-10-05 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/hash.c: Replace the old hash function with one based on
+ randomized CRC-32. The new one avoids a big table from the old
+ function.
+
+2004-10-05 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/random.c: Convert to use ircd_md5 interface and hopefully
+ keep more internal random state.
+
+2004-10-05 Michael Poole <mdpoole@troilus.org>
+
+ * include/ircd_md5.h, ircd/ircd_md5.c, ircd_crypt_smd5.c,
+ ircd/umkpasswd.c: Get rid of the GoodMD5xxx/BrokenMD5xxx
+ prefixes.
+
+2004-10-05 Michael Poole <mdpoole@troilus.org>
+
+ * adns, lib/adns: Remove unused adns library.
+
+2004-10-05 Michael Poole <mdpoole@troilus.org>, hikari <hikari@undernet.org>, Perry Lorier <isomer@undernet.org>
+
+ * include/*.h, ircd/*.c: Convert comments to Doxygen-compatible
+ format, and add new comments where needed.
+
+ * Doxyfile: New file to tell Doxygen how to run.
+
+2004-09-21 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_auth.c (HeaderMessages): Make the compiler, not the
+ programmer, generate magic numbers.
+ (AuthIncompleteList): Remove.
+ (AuthPollList): Remove.
+
+2004-09-19 Michael Poole <mdpoole@troilus.org>
+
+ * acinclude.m4: Clean up AC_DEFINE()s so we no longer need
+ acconfig.h.
+
+ * acconfig.h: Remove since it is now redundant.
+
+ * aclocal.m4, config.h.in, configure: Regenerate.
+
+2004-09-19 hikari <hikari@undernet.org>
+
+ * configure.in: Fixed configure script rules to fail if (f)lex or yacc/bison
+ aren't found as they're essential for compilation. Regenerated files with
+ autreconf.
+
+2004-09-18 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Add NETWORK feature example. Fix typos in
+ eaxmples for HANGONGOODLINK and IRCD_RES_TIMEOUT.
+
+ * include.class.h: Make max_links and ref_count unsigned ints.
+ Make ping_freq and conn_freq unsigned short. (No more negative
+ numbers in /stats y.)
+
+ * ircd/ircd.c: Report configuration file name for "ircd -k".
+
+2004-09-18 hikari <hikari@undernet.org>
+
+ * ircd/Makefile.in: Fixed a missing internal build dependency.
+
+2004-09-16 Michael Poole <mdpoole@troilus.org>
+
+ * INSTALL: Fix name of example.conf and mention its installed
+ location.
+
+ * include/supported.h (FEATURESVALUES2): Fix a reference to
+ channel mode +u that escaped earlier rename attempts.
+
+ * ircd/ircd_auth.c (iauth_connect): Assign port number after
+ zeroing out the destination address.
+ Add some additional debug statements to help follow operations.
+
+ * ircd/ircd_parser.y (iauthblock): Do not require "name" to be set.
+
+2004-09-11 Bas Steendijk <steendijk@xs4all.nl>
+
+ * include/channel.h, include/supported.h, ircd/channel.c,
+ ircd/s_err.c: Use +U instead of +u for user keys.
+
+2004-09-13 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Remove sample VIRTUAL_HOST setting.
+
+ * doc/readme.features: Remove VIRTUAL_HOST documentation, and
+ update NODNS documentation to match current behavior.
+
+ * include/s_conf.h: Remove now-unused vhost_address field and
+ set_virtual_host() function.
+
+ * include/ircd_features.h, ircd/ircd_features.c, ircd/s_debug.c:
+ Remove VIRTUAL_HOST.
+
+ * ircd/ircd_auth.c, ircd/s_bsd.c: Use VirtualHost as local address
+ if we do not have a more specific alternate.
+
+ * ircd/ircd_parser.y: Check for sanity in General blocks (from old
+ conf_add_local()) and assign vhost directly to VirtualHost.
+
+ * ircd/ircd_res.c (irc_in_addr_valid): Fix thinko; obviously any
+ value will be either != 0 or != 0xffff.
+
+ * ircd/os_generic.c: Use AF_INET instead of AF_INET6 when the
+ local addresses are specified as IPv4 addresses.
+
+ * ircd/s_conf.c: Remove unused conf_add_local() and
+ set_virtual_host().
+
+2004-09-13 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/listener.c (add_listener): Consolidate duplicated code, and
+ make sure listener->server is set before calling inetport() on it.
+
+2004-09-12 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.c (mode_parse_upass, mode_parse_apass): Only let
+ services (not normal opers) force a change of +A or +u.
+
+2004-09-11 Michael Poole <mdpoole@troilus.org>
+
+ * include/s_stats.h: Add sd_name to struct StatDesc. Stop
+ publishing the statsinfo and statsmap arrays; replace them with
+ stats_find(). Change argument list of StatFunc() to work with
+ names.
+
+ * ircd/m_stats.c: Use stats_find() instead of statsmap[]. Use the
+ full argument instead of just the first character in reports.
+
+ * ircd/s_stats.c: Adapt individual stats handler functions to new
+ argument list. Add long names to statsinfo[]. Add new functions
+ stats_cmp(), stats_search(), stats_find(). Sort statsinfo[] in
+ stats_init().
+
+ * ircd/s_err.c: Change ENDOFSTATS to display a string rather than
+ a single character.
+
+ * ircd/s_user.c: Send an error to the user when a message loses
+ its target in transit.
+
+ * include/class.h include/gline.h include/ircd_features.h
+ include/listener.h include/motd.h include/msgq.h include/res.h
+ include/s_debug.h include/s_misc.h include/userload.h ircd/class.c
+ ircd/gline.c ircd/ircd_features.c ircd/ircd_res.c ircd/listener.c
+ ircd/motd.c ircd/msgq.c ircd/s_debug.c ircd/s_misc.c
+ ircd/userload.c: Adjust stats handlers to new argument list.
+
+2004-09-11 Michael Poole <mdpoole@troilus.org>
+
+ * include/numeric.h, ircd/s_err.c: Remove RPL_TRACEPING, and
+ replace with RPL_TRACEEND.
+
+ * ircd/s_trace.c: Move all the duplicated code in m*_trace() to
+ do_trace(). Implement RPL_TRACEEND, per RFE#830291.
+
+2003-06-20 Alexander Maassen <outsider@key2peace.org>
+
+ * ircd/m_topic.c : Don't allow banned users to set a topic in a
+ channel.
+
+2004-09-11 Kevin L Mitchell <klmitch@mit.edu>
+
+ * config.h.in, tools/Makefile.crypt: Remove wrong pathname from
+ comment in header.
+
+ * ircd/m_clearmode.c, ircd/m_opmode.c: Fix wrong pathname in
+ header comment.
+
+ * ircd/m_away.c, ircd/m_kill.c, ircd/m_notice.c, ircd/m_ping.c,
+ ircd/m_pong.c, ircd/m_privmsg.c, ircd/m_quit.c, ircd/m_topic.c,
+ ircd/m_version.c: Remove "template" moniker from comments.
+
+ * ircd/test/ircd_chattr.0.dat (IsChannelPrefix): Drop + from
+ channel prefix list.
+
+2004-09-11 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Add examples for FEAT_HIS_* features.
+
+2003-06-08 Matthias Crauwels <ultimate_@wol.be>
+ [Feature renamed to FEAT_HIS_WHOIS_LOCALCHAN by Michael Poole.]
+
+ * include/ircd_features.h: new feature FEAT_HIS_LOCAL_CHAN_WHOIS
+
+ * ircd/ircd_features.c: new feature FEAT_HIS_LOCAL_CHAN_WHOIS
+
+ * ircd/m_whois.c: hide local channels in local WHOIS, this breaks HIS
+
+ * doc/readme.features: documented FEAT_HIS_LOCAL_CHAN_WHOIS
+
+ * doc/ircd.conf.sample: default value for FEAT_HIS_LOCAL_CHAN_WHOIS
+
+2004-09-11 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_relay.c (server_relay_channel_message,
+ server_relay_channel_notice): Do not allow other servers to send
+ or relay to local channels.
+
+ * ircd/m_wallchops (ms_wallchops): Likewise.
+
+ * ircd/m_wallvoices (ms_wallvoices): Likewise.
+
+2004-09-11 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/gline.c (gline_add): fix GLINE logging (Bug #750927)
+
+ * ircd/channel.c: removing limits shouldn't gobble an argument;
+ this was a subtle interaction issue with modebuf...fixed by adding
+ MODE_LIMIT to modebuf_flush_int() and short-circuiting
+ modebuf_mode_uint() to add MODE_LIMIT to mbuf->mb_rem in the
+ removal case. Note that this is not proof against the sequence,
+ "modebuf_mode_uint(mbuf, MODE_ADD | MODE_LIMIT, 10);
+ modebuf_mode_uint(mbuf, MODE_DEL | MODE_LIMIT, 10);"
+ (Bug #916138)
+
+2004-09-11 Michael Poole <mdpoole@troilus.org>
+
+ * include/supported.h: Kev pointed out I misinterpreted the
+ meaning of CHANMODES; fix this. Also define CHANNELLEN and
+ STATUSMSG from the ISUPPORT draft.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * include/supported.h (FEATURESVALUES2): Include A,u, in CHANMODES
+ when oplevels are enabled.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (send_channel_modes): Only send oplevels for
+ channels that actually use them -- for -A channels, send chanops
+ as :o even if OPLEVELS is enabled.
+
+ * ircd/ircd.c: Fix -k (chkconf mode) and show in usage help.
+
+ * ircd/numnicks.c (base64toip): Fill in the right number of 0
+ words when we see _ in a base64-encoded IPv6 address.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd.c: Add -k as a chkconf-like option to exit after
+ reading the configuration file.
+
+ * ircd/chkconf.c: Remove as unused.
+
+ * ircd/Makefile.in: Remove last mentions of chkconf from Makefile.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Remove examples for unused features (TIMESEC,
+ CRYPT_OPER_PASSWORD) and add for new feature (ANNOUNCE_INVITES).
+
+ * doc/readme.features: Remove documentation for unused features
+ (TIMESEC, CRYPT_OPER_PASSWORD, oper/locop privileges,
+ HIS_DESYNCS), update defaults for SOCKSENDBUF and SOCKRECVBUF, and
+ add documentation for ANNOUNCE_INVITES.
+
+ * include/ircd_features.h: Remove unused features (TIMESEC,
+ CRYPT_OPER_PASSWORD, LIST_CHAN, HIS_DESYNCS).
+
+ * include/ircd_features.c: Likewise.
+
+ * ircd/ircd_res.c: Actually use FEAT_IRCD_RES_RETRIES and
+ FEAT_IRCD_RES_TIMEOUT where appropriate.
+
+ * ircd/s_debug.c: Do not display setting of unused (and now
+ non-existent) FEAT_CRYPT_OPER_PASSWORD.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/os_generic.c (sockaddr_from_irc): Fix IPv4 implementation
+ to use the correct address family and IP offset.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * include/s_conf.h (struct ConfItem): Add origin and origin_name
+ fields.
+
+ * ircd/ircd_parser.y: Add new global variable "origin." Add a new
+ "connectionvhost" production that accepts vhost = "IP" inside a
+ Connect block and assigns the IP to origin_name.
+
+ * ircd/s_bsd (connect_inet): If aconf has a valid origin, use it
+ as the local address. Otherwise, fall back to the old logic (if
+ VIRTUAL_HOST="TRUE", use the virtual host setting).
+
+ * ircd/s_conf.c (lookup_confhost): If the ConfItem has an
+ origin_name, try to parse it as an IP address.
+
+2004-04-17 Isomer <isomer@undernet.org>
+ * ircd/parse.c: Don't rate limit /gline messages
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_parser.y: Replace references to yylval.whatever with
+ references to the appropriate term. This fixes bugs like
+ "1 hour 30 minutes" being misrecognized as 30 seconds.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_features.c (features): Change default values for
+ SOCKSENDBUF and SOCKRECVBUF to SERVER_TCP_WINDOW, so that users
+ need not specify them in ircd.conf.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_parser.y (serverblock): Server blocks should default
+ to CONF_LEAF status.
+
+ * doc/example.conf: Update example to reflect this.
+
+2004-09-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/parse.c (msg_tree_parse): Reject commands that contain
+ non-alphabetic characters.
+
+2004-09-09 Michael Poole <mdpoole@troilus.org>
+
+ * config.h.in: Remove duplicated and unused macro definitions.
+
+2004-08-24 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/client.h: Properly parenthesize "flag" argument to
+ FLAGSET_INDEX() and FLAGSET_MASK() macros.
+
+2004-08-22 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (send_channel_modes): If oplevels are disabled,
+ send 'o' for chanops instead of the member's oplevel.
+
+2004-08-22 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_conf.c: find_conf_byip() should use irc_in_addr_cmp()
+ instead of memcmp(). (Fixes IPv4 servers linking to an IPv6
+ server.)
+
+2004-08-22 Alex Badea <decampos@users.sourceforge.net>
+
+ * include/ircd_defs.h: increased SOCKIPLEN to fit ipv6 addresses
+
+2004-08-19 Michael Poole <mdpoole@troilus.org>
+
+ * include/res.h: Remove unused function gethost_byname_type().
+
+ * ircd/ircd_res.c: Likewise, and clean up some small functions
+ only used once (remove_dlink(), timeout_resolver()). Use rand()
+ for random request IDs instead of the deprecated *rand48(). Make
+ resolver timeout event fire only when needed instead of once a
+ second.
+
2004-08-17 Michael Poole <mdpoole@troilus.org>
IPv6 support, with lots of code and design borrowed from a patch