+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.