+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
+ by Alex Badea.
+
+ * config.h.in: Add place to #define IPV6 support.
+
+ * configure.in: Check for struct sockaddr_in6, and use that as
+ the default choice for IPv6 support.
+
+ * configure: Regenerate.
+
+ * include/IPcheck.h, include/client.h, include/gline.h,
+ include/ircd_string.h, include/listener.h, include/match.h,
+ include/res.h, include/s_bsd.h: Convert from struct in_addr (from
+ <netinet/in.h>) to struct irc_in_addr (from "res.h").
+
+ * include/ircd_osdep.h, include/s_conf.h, include/uping.h: Convert
+ from struct sockaddr_in (from <netinet/in.h>) to struct
+ irc_sockaddr (from "res.h"). Add new functions os_socket(),
+ os_accept(), os_sendto_nonb() to help abstract away actual
+ sockaddr types.
+
+ * include/ircd_chattr.h, ircd/table_gen.c: Define new bit to mark
+ characters valid in IPv6 addresses.
+
+ * include/numnicks.h, ircd/numnicks.c: New functions iptobase64()
+ and base64toip() to convert from base64 to struct irc_in_addr.
+
+ * ircd/IPcheck.c, ircd/channel.c, ircd/m_nick.c, ircd/m_oper.c,
+ ircd/m_userip.c, ircd/m_who.c, ircd/m_whois.c, ircd/s_misc.c,
+ ircd/s_serv.c, ircd/s_user.c, ircd/whocmds.c: Use struct
+ irc_in_addr instead of unsigned int or struct in_addr.
+
+ * ircd/gline.c: Use new more-generic ipmask functions.
+
+ * ircd/ircd.c: Use struct irc_sockaddr instead of separate port
+ fields.
+
+ * ircd/ircd_reslib.c: Use struct irc_sockaddr and ircd_aton()
+ instead of irc_ssaddr and irc_getaddrinfo().
+
+ * ircd/ircd_string.c: Implement new functions: IPv6-capable
+ ircd_ntoa_r(), ircd_aton_ip4(), ircd_aton().
+
+ * ircd/match.c: Delete IPv4-only matchcompIP(). Replace with
+ IPv6-capable ipmask_parse() and ipmask_check().
+
+ * ircd/numnicks.c: Implement new functions: iptobase64() and
+ base64toip().
+
+ * ircd/os_generic: Convert external parameters to be struct
+ irc_addrinfo. When using IPv6 support, sockaddr_in6 is native.
+ Implement new functions os_sendto_nonb(), os_socket() and
+ os_accept().
+
+ * ircd/ircd_auth.c, ircd/ircd_parser.y, ircd/ircd_res.c,
+ ircd/listener.c, ircd/m_connect.c, ircd/s_auth.c, ircd/s_bsd.c,
+ ircd/s_conf.c, ircd/s_stats.c, ircd/uping.c: Use struct
+ irc_sockaddr instead of separate in_addr and port fields and new
+ OS support functions.
+
+ * include/ircd_addrinfo.h, ircd/ircd_getaddrinfo.c,
+ ircd/ircd_getnameinfo.c: Remove, since these functions are no
+ longer used.
+
+ * ircd/os_bsd.c, ircd/os_linux.c, ircd/os_openbsd.c,
+ ircd/os_solaris.c, ircd/res_adns.c, ircd/res_libresolv.c: Remove,
+ since these are unused and not compatible with IPv6 support.
+
+ * ircd/Makefile.in: Remove references to ircd_getXxxxinfo.c.
+ Regenerate dependencies.
+
+2004-08-17 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_lexer.l: Change tokenizer to reduce number of lexer
+ states and be case-insensitive again.
+
+2004-08-15 Michael Poole <mdpoole@troilus.org>
+
+ * aclocal.m4: Check for uintNN_t instead of u_intNN_t, since the
+ former is from C99 (and the latter is absent on Solaris).
+
+ * configure.in: Remove check for inttypes.h (which is a C99 format
+ string header); replace with check for stdint.h. Add checks for
+ sys/param.h and sys/socket.h. Check for socklen_t being defined
+ (OS X does not set it). Run program tests for lex and yacc, and
+ use them rather than assuming flex and bison. Remove OSDEP_C and
+ mention to adns. Remove check for res_mkquery().
+
+ * config.h.in: Update u_intNN_t #undef lines. Add #undef
+ socklen_t so configure test can set it.
+
+ * configure: Regenerate.
+
+ * include/ircd_addrinfo.h: #include headers needed for netdb.h and
+ to define struct addrinfo and uintNN_t.
+
+ * include/ircd_reslib.h: Replace u_intNN_t with uintNN_t.
+
+ * include/res.h: #include "ircd_addrinfo.h" to get proper type
+ definitions. #define INADDR_NONE if it is not defined (as on
+ Solaris).
+
+ * ircd/Makefile.in: Replace LEX and YACC definitions. Remove
+ OSDEP_C and OSDEP_SRC; always compile os_generic.c. Remove adns
+ directory from CPPFLAGS. Regenerate dependencies.
+
+ * ircd/client.c: Return when no propagation set for oper, to
+ squash warning about use of "defaults" before it is set.
+
+ * ircd/engine_epoll.c: #include correct C99 integer header.
+
+ * ircd/engine_poll.c: Last argument to getsockopt() should be of
+ socklen_t, not size_t; fix.
+
+ * ircd/engine_select.c: Squash warning about bzero().
+
+ * ircd/ircd_auth.c: OS X does not define in_addr_t, so replace it
+ with uint32_t. We need <stdint.h> for that, so include it.
+
+ * ircd/ircd_getnameinfo.c, ircd/memdebug.c: Replace u_int32_t with
+ uint32_t.
+
+ * ircd/ircd_lexer.l: Replace flex-isms with portable syntax.
+ There is no portable way to do %option, so remove that. lex on
+ Solaris needs several of its internal tables to be bigger, so
+ increase those sizes.
+
+ * ircd/ircd_parser.y: Remove the second declarations of two
+ tokens, since standard yacc warns about changing precedence.
+
+ * ircd/os_generic.c: Make this compile on common OSes (Linux,
+ Solaris, OS X, FreeBSD, OpenBSD).
+
+ * ircd/table_gen.c: Make arguments to isprint() all unsigned char
+ to squash warnings on Solaris that array index is "char."
+
+ * ircd/umkpasswd.c: Remove #include <libgen.h> since it is not
+ portable, and replace basename() with an equivalent.
+
+ * ircd/uping.c: Typecast printf arguments for 64-bit OSes.
+
+2004-07-27 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_burst.c: Add new netride_modes() function to check
+ which modes could be used in a net.ride. Use this instead
+ of the old check for just +i or +k.
+ (Based on patches by beware and pomac.)
+
+2004-07-25 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_parser.y: Remove redundant semicolon; it causes
+ errors on some versions of yacc.
+
+2004-07-21 Michael Poole <mdpoole@troilus.org>
+
+ * include/client.h, ircd/ircd_auth.c, ircd/ircd_crypt_smd5.c,
+ ircd/ircd_reslib.c: Fix warnings from gcc -pedantic.
+
+2004-07-21 Michael Poole <mdpoole@troilus.org>
+
+ New DNS resolver code, courtesy of Dianora and the rest of the
+ Hybrid team. (Bugs are of course my fault.)
+
+ * configure.in, Makefile.in, ircd/Makefile.in: Remove adns and
+ libresolv from the build process. Update dependencies.
+
+ * configure: Regenerate.
+
+ * include/client.h: Change connection's DNS reply type.
+
+ * include/ircd_features.h, ircd/ircd_features.c: New HIS_STATS_a.
+
+ * include/numeric.h, ircd/s_err.c, ircd/s_stats.c: Add new
+ RPL_STATSALINE and /stats a to list DNS servers.
+
+ * include/ircd_addrinfo.h, include/ircd_reslib.h, include/res.h,
+ ircd/ircd_getaddrinfo.c, ircd/ircd_getnameinfo.c, ircd/ircd_res.c,
+ ircd/ircd_reslib.c: New resolver files.
+
+ * ircd/ircd_auth.c, ircd/s_auth.c, ircd/s_bsd.c, ircd/s_conf.c:
+ Update to new resolver callback interface and to only deal with
+ one IP and one name per DNS reply.
+
+ * ircd/parse.c: Remove /DNS command, since new resolver does not
+ track those statistics.
+
+2004-07-20 Michael Poole <mdpoole@troilus.org>
+
+ * doc/readme.features: Change references to O:, Y:, etc lines into
+ references to the appropriate block types.
+
+2004-07-01 Michael Poole <mdpoole@troilus.org>
+
+ * include/fileio.h: Elaborate on "works for any file descriptor."
+
+ * include/iauth.h: Remove unused file.
+
+2004-07-01 Michael Poole <mdpoole@troilus.org>
+
+ * include/map.h, ircd/map.c: Remove unused code.
+
+ * ircd/m_links.c, ircd/m_map.c, ircd/s_misc.c: Remove includes of
+ map.h and a call to map_update().
+
+ * ircd/Makefile.in: Remove map.c and regenerate dependencies.
+
+ * ircd/ircd_parser.y: Recognize Diane Bruce as a copyright holder
+ for the new config parser.
+
+ * ircd/match.c: Remove pointless pointer dereference (Reed points
+ out that this generates a warning with old gcc).
+
+ * ircd/s_user.c: Display connection class in CONNEXIT connection
+ notice as a string rather than an integer.
+
+ * tools/ringlog.c, tools/ringlog.pl: At Kevin's request, remove
+ lines (falsely) identifying ringlog as related to IRC; the files
+ are general purpose.
+
+ * configure.in, include/ircd_snprintf.h: Add checks for
+ va_copy()-like alternatives and use them if va_copy() is missing.
+
+ * configure, config.h.in: Regenerate.
+
+2004-02-01 beware <steendijk@xs4all.nl>
+
+ * ircd/channel.c: Check bans that look like IP bans against user's
+ hostname just in case they have a host like 1234.domain.tld.
+
+2003-12-18 Timothy Grant Vogelsang <net@astrolink.org>
+
+ * ircd/ircd_log.c, ircd/send.c: va_list is not a scalar type
+
+2004-04-02 Gavin Grieve <hektik@dimebox.net>
+
+ * ircd/ircd_parser.y: Fix rehash warnings for servername and
+ numeric so they only warn if changed in the config file.
+
+2004-06-30 Michael Poole <mdpoole@troilus.org>
+
+ * doc/readme.iauth, include/ircd_auth.h, ircd/ircd_auth.c: New
+ files.
+
+ * doc/example.conf: Illustrate IAUTH configuration.
+
+ * include/client.h: Add fields to record IAUTH status.
+
+ * ircd/Makefile.in: Add ircd_auth.c to Makefile.
+
+ * ircd/ircd_lexer.l, ircd/ircd_parser.y: Add new IAUTH section.
+
+ * ircd/s_conf.c: Notify IAUTH code when reloading a configuration
+ so that an obsolete connection can be abandoned.
+
+ * ircd/s_misc.c: Report client exits via IAUTH.
+
+ * ircd/s_user.c: If IAUTH is active and a connecting user has not
+ been checked against it, interrogate the IAUTH server.
+
+2004-06-25 Michael Poole <mdpoole@troilus.org>
+
+ * configure.in: Check for crypt.h as well.
+
+ * configure: Regenerate.
+
+ * ircd/ircd_crypt_native.c: Move XOPEN defines earlier so they
+ affect the first includes of system headers. Include crypt.h if
+ it is available.
+
+ * ircd/umkpasswd.c: Quash a gcc warning.
+
+2004-06-23 Michael Poole <mdpoole@troilus.org>
+
+ * doc/Authors: Add contributors to ircu2.10.11 and myself.
+
+ * ircd/gline.c: Fix buglet in my forward port of Alex Badea's fix.
+
+ * configure.in: Add missing check for inttypes.h; remove obsolete
+ display of Head-in-sand, add display of epoll() engine.
+
+ * INSTALL, INSTALL_FR, doc/readme.cvs: Update descriptions of how
+ to use SourceForge's CVS server, from the u2.10.11 branch.
+
+2003-11-09 beware <steendijk@xs4all.nl>
+
+ * ircd/s_user.c: move assigning a numeric to a local client from
+ when nick is set, to when connection becomes client, to not waste
+ numerics.
+
+2004-06-08 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/parse.c: don't let rank-and-file users escape HIS
+ limitations with /jupe...
+
+2004-06-18 Alex Badea <decampos@users.sourceforge.net>
+
+ * ircd/gline.c (gline_lookup): only return a gline if it's
+ active
+
+ * ircd/s_conf.c (find_kill): don't check for active gline,
+ since gline_lookup does now
+
+2002-11-11 hikari <shadow@undernet.org>
+ * ircd/ircd.c: added call to irc_crypt_init() - someone hurry up and
+ modularise :P
+
+ * ircd/ircd_xopen.c: removed, superseded by new crypto system.
+
+ * ircd/ircd_crypt.c: wrote scary ircd_crypt() interface function,
+ wrote ircd_crypt_mech_register() function, various other bits
+ designed to create a near-pluggable crypto system for ircu. currently
+ this code also loads the various mechanisms i've written code for.
+
+ * ircd/ircd_crypt_smd5.c: imported the crypt_md5 function from
+ elsewhere, manipulated to suit ircu, returns a salted MD5 password.
+
+ * ircd/ircd_crypt_native.c: replaces the old ircd_xopen.c file,
+ generate a crypted password using the systems native crypt() function.
+
+ * ircd/ircd_crypt_plain.c: plain text crypt mechanism, should really
+ only be used for testing purposes.
+
+ * ircd/ircd_md5.c: main gubbins of the MD5 hashing code, lifted from
+ elsewhere, ircuified.
+
+ * ircd/umkpasswd.c: mkpasswd program for ircu.
+
+ * include/ircd_xopen.h: removed, superseded by new crypto system.
+
+ * include/ircd_crypt.h: external definitions for the new ircd_crypt()
+ function and definition of the ircd_crypt_mech structure for containing
+ crypto mechanism data.
+
+ * include/ircd_crypt_smd5.h: sundary definitions for the salted MD5
+ mechanism.
+
+ * include/ircd_crypt_native.h: sundary definitions for the native
+ crypt() mechanism.
+
+ * include/ircd_crypt_plain.h: sundary definitions for the plain text
+ mechanism.
+
+ * include/umkpasswd.h: fluff for umkpasswd.
+
+2003-03-11 Landon Fuller (landonf) <landonf@sf.net>
+
+ * configure.in: allow ircu to build on OS X.
+
+2004-05-24 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_invite.c (m_invite): Include channel name in invitation
+ announcements.
+ (ms_invite): Likewise, and also fix a use-before-assignment bug in
+ them.
+
+2004-05-18 Michael Poole <mdpoole@troilus.org>
+
+ Announce invitations to other channel operators.
+
+ * include/ircd_features.h, ircd/ircd_features.c
+ (ANNOUNCE_INVITES): Add new boolean feature, default off.
+
+ * include/numeric.h, ircd/s_err.c (RPL_ISSUEDINVITE): Add new
+ reply.
+
+ * include/send.h, ircd/send.c (sendcmdto_channel_butserv_butone):
+ Add 'skip' parameter that is needed elsewhere.
+ (sendcmdto_channel_servers_butone): New function.
+
+ * ircd/channel.c, ircd/m_burst.c, ircd/m_kick.c, ircd/m_topic.c,
+ ircd/s_user.c: Add argument for 'skip' to calls to s_c_b_b.
+
+ * ircd/m_invite.c (m_invite, ms_invite): If ANNOUNCE_INVITES, send
+ the INVITE message to all interested servers, and send a numeric
+ to all local chanops.
+
+2004-05-18 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/res_adns.c (res_ourserver): Remove unused function.
+ (validate_name): Likewise.
+
+2004-05-17 Michael Poole <mdpoole@troilus.org>
+
+ * include/ircd_features.h, ircd/ircd_features.c, ircd/s_debug.c:
+ Rip out feature settings related to oper privileges.
+
+ * include/client.h: Comment a few unexplained privileges.
+
+ * ircd/ircd_lexer.l: Rename privilege keywords to match their
+ names in code and /PRIVS output. Add support for two "new"
+ privileges (FORCE_OPMODE, FORCE_LOCAL_OPMODE).
+
+ * include/class.h, ircd/client.c, ircd/ircd_parser.y,
+ ircd/m_oper.c: Replace the removed feature settings with
+ per-connection class operator privileges.
+
+ * doc/example.conf: Document the change.
+
+ * ircd/ircd_parser.y (portblock): Fix slight memory leak.
+
+2004-05-16 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Make this show the new NICKLEN default.
+
+2004-05-14 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/ircd_features.c: per CFV-0243, NICKLEN default is increased
+ to 12
+
+2004-05-14 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/s_user.c: process account creation timestamp if present in
+ user mode portion of a N protocol message; add account creation
+ timestamp to outgoing N protocol messages if that timestamp is
+ non-zero
+
+ * ircd/m_account.c: process account creation timestamp if present
+ in AC protocol message
+
+ * include/struct.h: add account creation timestamp
+
+2004-05-16 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Document operator privilege settings.
+
+2004-05-16 Michael Poole <mdpoole@troilus.org>
+
+ Get rid of CONF_LOCOP; use PRIV_PROPAGATE instead.
+
+ * ircd/ircd_parser.y (invert): New variable.
+ (operlocal): Remove production.
+ (operpriv): Use "invert" variable.
+ (privtype): Add LOCAL alternative production.
+
+ * ircd/m_oper.c (m_oper): Remove references to CONF_LOCOP; replace
+ with CONF_OPERATOR or PRIV_PROPAGATE checks, as appropriate.
+
+ * ircd/s_conf.c (AuthorizationCheckResult, find_conf_exact):
+ Likewise.
+
+ * ircd/s_stats.c (report_array, statsinfo): Likewise.
+
+ * ircd/s_user.c (set_user_mode): Likewise.
+
+2004-05-15 Michael Poole <mdpoole@troilus.org>
+
+ * patches/diffs/astralnet.diff, patches/diffs/nocfv.diff: Remove
+ patches obsoleted by F: lines.
+
+ * patches/diffs/topicburst.diff: Remove patch that was integrated
+ into the main code.
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2003-11-05 -MDP]
+
+ * ircd/m_whois.c: On remote whois, show +s local channels with a *
+ prefix to opers.
+
+2004-05-15 Michael Poole <mdpoole@troilus.org>
+
+ * include/gline.h, ircd/gline.c, ircd/s_err.c: Forward port a lot
+ of gline-related fixes from 2.10.11. Things that work are due to
+ Kev, Isomer, Spike, hikari, and probably others; CVS makes it hard
+ to figure out who did what. Any mistakes are mine.
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2003-11-05 -MDP]
+
+ * ircd/s_misc.c, ircd/s_user.c: added numnick to SNO_CONNEXIT
+ messages (so you can match EXIT's to CONN's)
+
+2004-05-15 Reed Loden <reed@reedloden.com>
+
+ [Original ChangeLog date: 2003-05-01 -MDP]
+
+ * ircd/s_err.c: Added network to text and edited 001 a bit.
+
+ * ircd/s_user.c: Send network with 001.
+
+2004-05-15 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_user.c (add_target): Move free target invite check...
+
+ * ircd/s_user.c (check_target_limit): to here, matching 2.10.11's
+ behavior.
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2003-11-23 -MDP]
+
+ * ircd/s_user.c: Don't credit users with an extra attempt if they
+ are klined/glined, throttle them!
+
+2004-05-15 Jeekay <jeekay@netgamers.org>
+
+ [Original ChangeLog date: 2003-04-24 -MDP]
+
+ * ircd/s_user.c: Altered (K-lined) to depend on find_kill type
+
+2004-05-15 splidge <splidge@quakenet.org>
+
+ [Original ChangeLog date: 2003-09-03 -MDP]
+
+ * ircd/s_user.c: Made hide_hostmask() not show bogus joins for
+ channels where the user is a zombie.
+
+2004-05-15 beware <steendijk@xs4all.nl>
+
+ [Original ChangeLog date: 2003-10-25 -MDP]
+
+ * ircd/m_whois.c: Fixed /whois comma separated list with wildcards
+ cpu hog bug
+
+2004-05-15 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_conf.c (rehash): Call clear_quarantines on rehash since
+ 2.10.11 does. Show ident and IP for clients being killed by new
+ G-lines and K-lines.
+
+2004-05-15 hikari <shadow@undernet.org>
+
+ [Original ChangeLog date: 2003-06-27 -MDP]
+
+ * ircd/ircd.c: After thought, update the next check time based on
+ when an unregistered client should expire.
+
+2004-05-15 hikari <shadow@undernet.org>
+
+ [Original ChangeLog date: 2003-06-22 -MDP]
+
+ * ircd/ircd.c: Fixed check_pings() - shouldn't be any problem with
+ clients not being able to connect anymore.
+
+2004-05-15 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (can_join): Revert to using IsInvited() rather
+ than walking the list directly.
+ (modebuf_flush_int): Fix errant HEAD_IN_SAND_SNOTICES check to
+ use feature_bool(FEAT_HIS_SNOTICES) instead.
+
+2004-05-15 Kevin L Mitchell <klmitch@mit.edu>
+
+ [Original ChangeLog date: 2004-01-31 -MDP]
+
+ * ircd/channel.c (mode_parse_key): don't allow , in keys!
+
+2003-04-12 David Mansell (splidge) <splidge@sf.net>
+
+ [Original ChangeLog date: 2003-04-14 -MDP]
+
+ * ircd/channel.c: When keys and limits conflict on burst, the key
+ which is first alphabetically or the limit which is lower will be
+ used by both servers. This matches pre-2.10.11 behaviour.
+ Closes: (#713930)
+
+2004-05-15 David Mansell <splidge@quakenet.org>
+
+ [Original ChangeLog date: 2002-12-28 -MDP]
+
+ * ircd/channel.c (mode_parse_limit): don't allow -l when no limit is
+ set, don't allow -l with negative parameter (or unsigned >2^31).
+
+2004-05-15 David Mansell <splidge@quakenet.org>
+
+ [Original ChangeLog date: 2002-12-31 -MDP]
+
+ * ircd/m_burst.c (ms_burst): when kicking net riders, clear
+ invites too.
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2003-11-04 -MDP]
+
+ * ircd/s_serv.c: Burst glines/jupes early
+
+2004-05-15 volta <volta2@gmx.de>
+
+ [Original ChangeLog date: 2003-04-26 -MDP]
+
+ * ircd/m_userip.c, ircd/m_userhost.c: Small fix, that
+ allows users to see their own ip & hostname. (Should solve
+ all problems with dcc)
+
+2004-05-15 Kevin L Mitchell <klmitch@mit.edu>
+
+ [Original ChangeLog date: 2003-06-13 -MDP]
+
+ * ircd/m_settime.c: it's supposed to be %ld, not %l
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2004-03-20 -MDP]
+
+ * ircd/m_invite.c: Disallow invites to non existant channels
+
+2004-05-15 David Mansell <splidge@quakenet.org>
+
+ [Original ChangeLog date: 2003-04-26 -MDP]
+
+ * ircd/m_invite.c: let +k users invite into channels they aren't on.
+
+2004-05-15 hikari <shadow@undernet.org>
+
+ [Original ChangeLog date: 2003-07-13 -MDP]
+
+ * ircd/IPcheck.c: Fixed (another) overflow problem in
+ ip_registry_check_local()
+
+ [Original ChangeLog date: 2003-06-29 -MDP]
+
+ * ircd/IPcheck.c: Fixed overflow problem in
+ ip_registry_connect_fail()
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2003-05-02 -MDP]
+
+ * ircd/IPcheck.c: Added assert()'s to check for underflow
+
+2004-05-15 Kevin L Mitchell <klmitch@mit.edu>
+
+ [Original ChangeLog date: 2003-11-22 -MDP]
+
+ * tools/wrapper.c: commit uid on chroot fix from ubra
+
+ * ircd/version.c.SH: fix generation generation
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2003-11-23 -MDP]
+
+ * ircd/os_*.c, ircd/ircd_features.c: Default changing window sizes
+ to off. if an admin is smart enough to understand these features
+ they can enable them manually.
+
+2004-05-15 splidge <splidge@quakenet.org>
+
+ [Original ChangeLog date: 2003-03-26 -MDP]
+
+ * ircd/include/ircd_features.h, include/ircd_osdep.h,
+ ircd/ircd_features.c, ircd/listener.c, ircd/os_bsd.c,
+ ircd/os_generic.c, ircd/os_linux.c, ircd/os_openbsd.c
+ ircd/os_solaris.c, ircd/s_bsd.c: Patch to allow socket bufs to be
+ altered via F: lines
+
+2004-05-15 Isomer <isomer@undernet.org>
+
+ [Original ChangeLog date: 2003-11-18 -MDP]
+
+ * ircd/s_auth.c, ircd/res_libresolv.c, ircd/res_adns.c: Clean up
+ the preregistration subsystem allowing customisation of timers,
+ make the dns resolver stats oper only, and make it much more clear
+ what all the numbers are.
+
+2004-05-15 Spike <spike@undernet.org>
+
+ [Original ChangeLog date: 2003-11-23 -MDP]
+
+ * ircd/IPcheck.c: Make IPcheck constants configurable
+
+2004-05-14 Kevin L Mitchell <klmitch@mit.edu>
+
+ [Original ChangeLog date: 2003-11-22 -MDP]
+
+ * ircd/m_nick.c (m_nick): truncate the nickname to the minimum of
+ the maximum allowed length (NICKLEN) or the allowed nickname
+ length specified as the NICKLEN feature
+
+ * ircd/ircd_features.c: declare NICKLEN and set its default value
+ to 9
+
+ * include/supported.h: add MAXNICKLEN to ISUPPORT and do a little
+ rearranging...
+
+ * include/ircd_features.h: add NICKLEN feature
+
+ * include/ircd_defs.h (NICKLEN): raise max NICKLEN to 15
+
+ * doc/readme.features: document new NICKLEN feature
+
+ * doc/example.conf: list new NICKLEN F-line
+
+2004-05-14 Matthias Crauwels <ultimate_@wol.be>
+
+ [Original ChangeLog date: 2003-06-08 -MDP]
+
+ * ircd/gline.c: fixed the counting bug in gline_memory_count
+
+ * ircd/jupe.c: fixed the counting bug in jupe_memory_count
+
+2004-05-14 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_mode.c (ms_mode): Do not always try to call
+ set_user_mode() when parv[1] is a channel name.
+
+2004-05-10 Michael Poole <mdpoole@troilus.org>
+
+ Implement a per-connection-class default usermode option.
+
+ * doc/example.conf: Illustrate how to use the option.
+
+ * include/class.h (struct ConnectionClass): New "default_umode"
+ field.
+ (ConfUmode): New macro.
+
+ * include/client.h (client_get_default_umode): New function.
+
+ * ircd/client.c (client_get_default_umode): Implement it.
+
+ * ircd/ircd_lexer.l (usermode): New token.
+
+ * ircd/ircd_parser.y (classblock, etc): New syntax.
+
+ * ircd/s_user.c (register_user): Set default user modes for user.
+ This sends the new mode to the user, so the explicit send later
+ is no longer necessary.
+
+2004-05-10 Michael Poole <mdpoole@troilus.org>
+
+ Forward port of asuka-topicburst.patch from Quakenet's "Asuka"
+ patch set.
+
+ * include/ircd_features.h (FEAT_TOPIC_BURST): Add new feature.
+
+ * ircd/channel.c (send_channel_modes): If F:TOPIC_BURST:TRUE,
+ also send a TOPIC to the peer.
+
+ * ircd/ircd_features.c (FEAT_TOPIC_BURST): Add new boolean
+ feature, defaulting to FALSE.
+
+ * ircd/m_topic.c (do_settopic): Add argument for topic timestamp,
+ and allow F:HIS_BANWHO to hide the originator of the topic.
+ (ms_topic): Parse optional timestamp arguments to TOPIC, and use
+ them to decide whether to ignore the topic.
+
+2004-05-10 Michael Poole <mdpoole@troilus.org>
+
+ Forward port of delayed-join.patch from Quakenet's "Asuka" patch
+ set (which was a port of code I wrote for the other ircu).
+
+ * include/channel.h (CHFL_DELAYED): New membership flag.
+ (MODE_DELJOINS, MODE_WASDELJOINS): New channel modes.
+ (infochanmodes): Add +D to list of supported channel modes.
+ (IsDelayedJoin, SetDelayedJoin, ClearDelayedJoin): New macros.
+ (member_can_send_to_channel, client_can_send_to_channel): Add
+ "reveal" parameter to indicate whether a request should cause
+ a join-delayed user to become visible.
+ (RevealDelayedJoin, CheckDelayedJoins): New functions.
+
+ * include/numeric.h (RPL_DELNAMREPLY): New numeric.
+
+ * include/s_user.h (NAMES_DEL): New flag for do_names().
+
+ * include/supported.h (FEATURESVALUES2): Add +D to list of
+ supported channel modes.
+
+ * ircd/channel.c (remove_member_from_channel,
+ member_can_send_to_channel, client_can_send_to_channel,
+ joinbuf_join): Handle join-delayed users.
+ (channel_modes, modebuf_flush_int, modebuf_mode, modebuf_flush,
+ modebuf_extract, mode_process_clients, mode_parse_mode,
+ mode_parse): Handle delayed-join channels.
+ (RevealDelayedJoin, CheckDelayedJoins): New functions.
+
+ * ircd/ircd_relay.c (relay_channel_message, relay_channel_notice,
+ server_relay_channel_message, server_relay_channel_notice): Add
+ argument for "reveal" parameter to client_can_send_to_channel().
+
+ * ircd/m_burst.c (ms_burst): Support MODE_DELJOINS channels.
+
+ * ircd/m_clearmode.c (do_clearmode): Support clearing mode +D.
+
+ * ircd/m_join.c (join0): Pass the CHFL_DELAYED flag when parting a
+ channel with JOIN 0.
+
+ * ircd/m_kick.c (m_kick): For join-delayed members, only send the
+ KICK to the kicker and kickee. Then check whether +d can be
+ removed.
+
+ * ircd/m_names.c (do_names): Show join-delayed users if and only
+ if the NAMES_DEL flag is given. If NAMES_DEL is given, also use
+ RPL_DELNAMREPLY instead of RPL_NAMREPLY.
+ (m_names): If NAMES -D, pass NAMES_DEL to do_names().
+
+ * ircd/m_part.c (m_part, ms_part): Add "reveal" argument for
+ member_can_send_to_channel(). Set CHFL_DELAYED join in joinbuf if
+ the user is join-delayed.
+
+ * ircd/m_quit.c (m_quit): Handle join-delayed users and new
+ argument for member_can_send_to_channel().
+
+ * ircd/m_topic.c (do_settopic): If a join-delayed channel member
+ changes the topic, reveal the member.
+
+ * ircd/m_wallchops.c (m_wallchops, ms_wallchops): Add argument for
+ "reveal" parameter to client_can_send_to_channel().
+
+ * ircd/m_wallvoices.c (m_wallvoices, ms_wallvoices): Likewise.
+
+ * ircd/m_who.c (m_who): Skip join-delayed members where we skip
+ zombies.
+
+ * ircd/m_whois.c (do_whois): Use '<' as a prefix for join-delayed
+ users. Use slightly more efficient macros rather than function
+ calls to test for ops and voice.
+
+ * ircd/s_err.c (RPL_DELNAMREPLY): New numeric response string.
+
+ * ircd/s_user.c (hide_hostmask): For users with no modes in a
+ join-delayed channel, do not send JOIN to other members after the
+ QUIT :Registered.
+
+ * ircd/send.c (sendcmdto_common_channels_butone): Skip
+ join-delayed users where we skip zombies.
+
+2004-05-10 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_events.c: Actually reference and try to use the epoll
+ event engine. Omitted from yesterday's commit.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ Forward port of Paul "Zoot" Chang's pseudo-command.patch and
+ pseudo-support.patch.
+
+ * doc/example.conf: Illustrate how to use the feature.
+
+ * include/handlers.h (m_pseudo): Declare new handler function.
+
+ * include/ircd_features.h (HIS_STATS_R): Add a feature to control
+ user visibility of the pseudo-commands.
+
+ * include/msg.h: Add flag and field for the extra information used
+ to select a pseudo-command's target.
+
+ * include/numeric.h (RPL_STATSRLINE, ERR_SERVICESDOWN): Add
+ definitions.
+
+ * include/parse.h (register_mapping, unregister_mapping): Declare.
+
+ * include/s_conf.h (struct nick_host, struct s_map,
+ GlobalServiceMapList): Define.
+
+ * ircd/Makefile.in: Add m_pseudo.c to IRCD_SRC. Add generated
+ files to "make depend" dependency list. Update dependencies.
+
+ * ircd/ircd_features.c (HIS_STATS_R): Define feature type and
+ default value.
+
+ * ircd/ircd_lexer.l (pseudo, prepend): Recognize new tokens.
+
+ * ircd/ircd_parser.y: Support "Pseudo" configuration blocks.
+
+ * ircd/parse.c (msgtab): Add initializer for field "extra" to all
+ commands.
+ (msg_tree_insert, msg_tree_remove, register_mapping,
+ unregister_mapping): New functions.
+ (parse_client): Implement MFLG_EXTRA extra argument passing.
+
+ * ircd/s_conf.c (GlobalServiceMapList): New variable.
+
+ * ircd/s_err.c (RPL_STATRLINE, ERR_SERVICESDOWN): Add format
+ strings for new numeric responses.
+
+ * ircd/s_stats.c (stats_mapping): New function.
+ (statsinfo): Add entry for /stats R and make old /stats r entry
+ case-sensitive.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_parser.y (parse_error): Convert to being a wrapper for
+ yyerror() so that configuration errors all go to the same place.
+
+ * ircd/s_conf.c: New variables conf_error and conf_already_read.
+ conf_error is cleared by read_configuration_file() and set by
+ yyerror(); conf_already_read is set by read_configuration_file()
+ and never cleared. Make yyerror() display error to stderr before
+ conf_already_read is set. Make configuration errors a fatal
+ condition in init_conf().
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/Makefile.in: Pass the source directory as an argument to
+ version.c.SH so it knows where to find the source files for an
+ out-of-srcdir build.
+
+ * ircd/version.c.SH: Use that information.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * Makefile.in: Ensure ${prefix}/include exists, since the adns
+ install puts files in that directory. (The adns Makefile does
+ not use configure's ${includedir}.)
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * doc/readme.features: The logic for F:AUTOHIDE was removed, but
+ not its documentation. Fix that omission.
+
+ * include/ircd_features.h, ircd/ircd_features.c: Remove the unused
+ definitions for FEATURE_AUTOHIDE.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * doc/readme.who: Document the support for account matching and
+ display in the WHO command.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd.c (main): Move check_pid() call until after we read
+ the configuration file so that F:PPATH works correctly.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/match.c (match): Use ToLower() instead of tolower() for
+ character comparisons.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_user.c (register_user): Initialize "flag" (user's old
+ modes) passed to send_umode() so that the real set of modes are
+ sent to the user.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_server.c (ms_server): Apply +h/+s flags only to the new
+ server, not to a hub between us and the new server.
+
+ * ircd/ircd_relay.c (relay_directed_message): Check FLAG_SERVICE
+ on target server rather than FLAG_CHSERV (so that directed
+ messages work at all).
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * configure.in: Add checks for epoll_* system call family.
+
+ * configure: Regenerate.
+
+ * ircd/engine_epoll.c: New file; forward ported from 2.10.11
+ branch.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * include/ircd_alloc.h: Add definitions for MyRealloc, since they
+ are needed by kqueue and epoll event engines; kill #if 0'd block.
+
+ * include/memdebug.h: Declare dbg_realloc() helper function.
+
+ * ircd/ircd_alloc.c: Implement DoRealloc() helper function.
+
+ * ircd/memdebug.c: Implement dbg_realloc() helper function.
+
+2004-05-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (find_no_nickchange_channel): Disallow nick
+ changes on a moderated channel with neither ops nor voice.
+
+ * ircd/s_err.c: Update ERR_BANNICKCHANGE message to match.
+
+2004-01-20 Perry Lorier <isomer@undernet.org>
+
+ * ircd/ircd_parser.y: Fixed parser to work with a more modern bison
+
+2004-01-21 Gavin Grieve <hektik@dimebox.net>
+
+ * ircd/channel.c, include/channel.h: bring forward the IsUserParting()
+ code to resolve the multiple part messages bug written by Entrope.
+
+2003-08-12 Timothy Vogelsang <net@astrolink.org>
+
+ * ircd/match.c: (match) rewrote function based on existing
+ code from the hybrid ircd -- death to goto
+
+2003-07-07 Bas Steendijk <steendijk@xs4all.nl>
+
+ * ircd/s_user.c: invalidate ban cache for user on host hiding/account
+
+2003-07-04 Bas Steendijk <steendijk@xs4all.nl>
+
+ * include/client.h, ircd/m_userhost.c, ircd/m_userip.c, ircd/m_who.c,
+ ircd/m_whois.c, ircd/whocmds.c: the same code, for "can user A see user
+ B is an oper", appeared in a lot of places. made it a define SeeOper.
+
+2003-07-04 Bas Steendijk <steendijk@xs4all.nl>
+ * ircd/s_user.c: umode_str (user modes in N token) internal flags var
+ was not initialized to the user's flags, returned a string with
+ random modes set.
+
+2003-07-01 Bas Steendijk <steendijk@xs4all.nl>
+
+ * ircd/m_names.c: length counter being incremented one too many
+ for each nick, resulting names reply messages are about 50 chars
+ shorter than possible. fixed.
+
+2003-06-29 Bas Steendijk <steendijk@xs4all.nl>
+
+ * ircd/channel.c: don't ever send mode changes for local channels to
+ servers.
+
+2003-06-27 Bas Steendijk <steendijk@xs4all.nl>
+
+ * include/channel.h, include/client.h, ircd/s_user.c, ircd/s_err.c:
+ moved the supported channel/user mode strings of the 004 reply from
+ s_err.c to the header files where the channels/user modes are
+ defined, and show or hide +Au based on OPLEVELS setting.
+
+2003-06-25 Bas Steendijk <steendijk@xs4all.nl>
+
+ * ircd/m_burst.c: Clear topic set by netrider on burst.
+
+2003-08-05 Diane Bruce <db@db.net>
+
+ * ircd/parse.c: Fixed the typo the fix of the typo created
+
2003-08-01 Diane Bruce <db@db.net>
* ircd/parse.c: Fixed typo