Author: Perry Lorier <isomer@undernet.org>
[ircu2.10.12-pk.git] / ChangeLog
index a1f65fec8acfe276d3fdd9c66c0b0c83bb6dcacb..4545f05199fbe2a4b0d1ebad1064644a1776cd6a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,398 @@
+2005-02-21  Perry Lorier <isomer@undernet.org>
+
+       * ircd/s_stats.c: Hide the hub IP's.  They're kinda important.
+
+2005-02-20  Perry Lorier <isomer@undernet.org>
+
+       * ircd/ircd_parser.y: Moved some parse errors from log_write()'s to
+       parse_error()'s so that ./ircd -k will display them.  Also clarified
+       the warning about oper blocks.
+
+2005-02-20  Perry Lorier <isomer@undernet.org>
+
+       * tools/convert-conf.py: A multitude of changes to deal with parsing
+       mistakes, generate a newer config file, better error handling,
+       being smarter about what config elements you generate etc.
+       
+2005-02-20  Perry Lorier <isomer@undernet.org>
+
+       * ircd/engine_epoll.c: Change a size_t to socklen_t to match
+       getsockopt prototype, so it compiles without warning on amd64
+
+2005-02-19  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y (clientblock): Parse IP address before
+       allocating ConfItem; if the parse fails, generate an error.
+
+       * ircd/s_err.c (RPL_STATSCLINE): Add format field to prefix IPv6
+       addresses starting with ':'.
+       (RPL_STATSILINE): Likewise.
+       (RPL_STATSOLINE): Add format field for username.
+
+       * ircd/s_stats.c (stats_configured_links): Pass the appropriate
+       argument for the RPL_STATSxLINE changes.
+       Change RPL_STATSILINE to use * instead of <NULL> when IP or host
+       is null.
+
+2005-02-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/IPcheck.c (ip_registry_find): Use canonical form of IP
+       address to look up and compare against hash entries.
+
+       * ircd/channel.c (apply_ban): Do not free a succesful BAN_DEL ban.
+
+       * ircd/ircd_parser.y (clientblock): Stash IP string in aconf->name.
+       (clienthost): Split hosts that contain '@' into username and host.
+       (clientip): Split IPs that contain '@' into username and IP.
+       (killreason): Add missing ~ to mask off DENY_FLAGS_FILE.
+
+       * ircd/m_silence.c (forward_silences): When we reject a silence,
+       splice it out of the ban list.  Warn the user if he is local.
+
+       * ircd/s_bsd.c (connect_inet): Set IP TOS for outbound server
+       connections.
+
+       * ircd/s_stats.c (stats_configured_links): Display correct field
+       when listing CONF_UWORLD entries.
+
+2005-02-09  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in (YACC): Only warn if we cannot get a version number
+       from $YACC.
+
+       * configure: Regenerate.
+
+       * ircd/ircd_res.c (check_resolver_timeout): Try another way to
+       avoid timer_chg() on a non-queued/active timer.
+
+       * ircd/ircd_string.c (ircd_aton): Set part_start to handle input
+       strings like "::127.0.0.1".
+
+       * ircd/test/ircd_in_addr_t.c (test_addrs): Add a test for that.
+
+2005-02-02  Michael Poole <mdpoole@troilus.org>
+
+       * Makefile.in (install): Do not create ${prefix}/include since it
+       is no longer used.
+
+       * ircd/Makefile.in (install-*): Remove commented-out code to touch
+       and chown MPATH and RPATH.
+
+       * ircd/gline.c (gline_find): Allow searching for host-based
+       G-lines by plain hostname (not *@host), thus preventing "GLINE
+       test ..." from inserting duplicate G-lines.
+
+       * ircd/motd.c (motd_create): Null out new Motd's hostmask when
+       appropriate, avoiding an uninitialized or stale pointer.
+
+2005-01-26  Michael Poole <mdpoole@troilus.org>
+
+       * include/ircd_alloc.h (DoMallocZero): Parenthesize macro
+       arguments, fixing operator precedence problems.
+       (DoFree): Make debug version also overwrite p.
+
+       * include/memdebug.h (fda_get_byte_count, fda_get_block_count):
+       Declare functions used outside memdebug.c.
+
+       * ircd/Makefile.in (UMKPASSWD_SRC): Add memdebug.c.
+
+       * ircd/ircd_alloc.c (DoMalloc, DoMallocZero, DoRealloc): Do not
+       use these if using the memdebug version.
+
+       * ircd/memdebug.c: #include "send.h" and <string.h> to get
+       declarations for certain functions.
+
+       * ircd/umkpasswd.c (CurrentTime): Define in case of memdebug.
+       (sendto_opmask_butone): Likewise.
+
+2005-01-25  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: Fix typos and thinkos in previous commut.
+
+       * configure: Regenerate.
+
+       * doc/example.conf: Change class name in Connect block to be
+       consistent with earlier Class block.
+
+       * ircd/ircd.c (try_connections): Consider Connect blocks with hold
+       time of 0.  Fix Links() vs MaxLinks() comparison to reflect ref
+       count starting at 1.
+
+       * ircd/ircd_parser.y (cruleblock, iauthblock): Clear unused
+       variables after use.
+
+2005-01-24  Michael Poole <mdpoole@troilus.org>
+
+       * configure.in: Make sure that $LEX and $YACC are reasonable and
+       actually run.
+
+       * configure: Regenerate.
+
+       * ircd/ircd_res.c (check_resolver_timeout): Use correct macro to
+       test whether the timer is already pending.
+
+2005-01-23  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Kill): Fix typo in realname Kill block
+
+       * include/client.h (infousermodes): Fix typo in comment.
+
+       * ircd/ircd.c (parse_command_line): -k implies BOOT_TTY.
+       (main): Move daemon_init() before event_init() to work around BSD
+       lameness.
+
+2005-01-23  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/test/Makefile.in: Add missing "install" target.  Make
+       compatible with BSD make (which has no $^ and no $(CPPFLAGS) in
+       its default .c.o rule).
+
+2005-01-21  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/engine_kqueue.c: Move <sys/types.h> earlier to fix build on
+       FreeBSD 5.x (which needs it for <sys/event.h>).
+
+       * ircd/fileio.c (fbopen): Replace BSDism S_IREAD, S_IWRITE with
+       portable equivalents.
+
+       * ircd/ircd_log.c (log_open): Likewise.
+
+       * ircd/os_generic.c (_XOPEN_SOURCE): Increase to 600 (SuSv3?) so
+       that IPv6 definitions become visible on FreeBSD 5.3.
+
+       * ircd/s_auth.c: Remove apparently unused <sys/file.h> because
+       it fails to compile on FreeBSD 5.3.
+
+2005-01-22  Perry Lorier <isomer@undernet.org>
+
+       * ircd/ircd_parser.y: Fix missing ;
+
+2005-01-19  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_invite.c (m_invite, ms_invite): Include timestamp in
+       outbound INVITE messages.  On incoming INVITEs, ignore if the
+       timestamp is too recent or if the timestamp is missing and the
+       peer server is in burst.
+
+2005-01-15  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Mention CIDR support for Client, Operator, bans
+       and silences.  Mention net.rider kick change.
+
+       * doc/example.conf (Class): Add documentation for restart and
+       local_opmode privileges.  Fix name of local_jupe privilege.
+
+       * ircd/ircd_lexer.l: Recognize local_opmode privilege.
+
+2005-01-14  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Further updates (mention Pseudo blocks, clarify
+       CAP comment, mention named /stats, list config heteromorphisms.
+
+       * doc/readme.features: Document HIS_STATS_a, HIS_STATS_L,
+       HIS_STATS_R, LOCAL_CHANNELS, TOPIC_BURST.
+
+       * ircd/channel.c (mode_parse_apass): Change old mention of +u mode
+       to say +U.
+
+2005-01-13  Michael Poole <mdpoole@troilus.org>
+
+       * RELEASE.NOTES: Update for 2.10.12.
+
+2005-01-08  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (@page zombie): Add synopsis to explain what
+       zombies are supposed to do.
+
+       * doc/example.conf (Features): Transfer recommended LOG features
+       from 2.10.11 example.conf.
+
+2005-01-03  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd.c (try_connections): Test Connect hold time before
+       updating it (spotted by Kev).
+
+2005-01-03  Michael Poole <mdpoole@troilus.org>
+
+       * Makefile.in: Add ircd/test as a subdirectory.
+
+       * ircd/.cvsignore: Ignore umkpasswd binary.
+
+       * ircd/Makefile.in: Update dependencies.
+
+       * ircd/test/.cvsignore: New file.
+
+       * ircd/test/Makefile.in: Use ${} instead of $().  Add build,
+       depend, distclean targets to integrate with rest of build system.
+
+2005-01-03  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/IPcheck.c (ip_registry_check_remote): Do not count clones
+       that have an invalid IP address.
+
+       * ircd/ircd.c (try_connections): Update Connect hold time before
+       skipping it, to prevent infinite loops.
+
+2005-01-03  Kevin L Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_user.c (is_silenced): is_silenced() would core if sptr
+       was a server; fixed to skip servers
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * include/s_bsd.h (VirtualHost): Replace with separate variables
+       for IPv4 and IPv6 virtual hosts.
+
+       * include/uping.h (uping_echo): Remove declaration.
+
+       * ircd/ircd_auth.c (iauth_reconnect): Select VirtualHost_v4 or
+       VirtualHost_v6 based on iauth server address family.
+
+       * ircd/ircd_lexer.l: Do not recognize RESOLVER token.
+
+       * ircd/ircd_parser.y (ResolverAddr): Remove declaration.
+       (RESOLVER): Remove definition.
+       (generalresolver): Remove.
+       (generalvhost): Assign address to either VirtualHost_v4 or
+       VirtualHost_v6, depending on format.
+
+       * ircd/ircd_res.c (res_socket): Replace with separate variables
+       for IPv4 and IPv6 resolver sockets.
+       (ResolverAddr): Remove definition.
+       (restart_resolver): Attempt to set up both IPv4 and IPv6 sockets.
+       (send_res_msg): Select outbound FD based on resolver address type.
+       (res_readreply): Recognize either inbound socket FD.
+
+       * ircd/os_generic.c (sockaddr_from_irc): Require irc != NULL.
+       (os_socket): Require local != NULL.
+
+       * ircd/s_bsd.c (VirtualHost): Replace with separate variables
+       for IPv4 and IPv6 virtual hosts.
+       (connect_inet): Select virtual host based on destination address.
+
+       * ircd/uping.c (UPingFIleDescriptor): Remove.
+       (upingSock): Split into separate IPv4 and IPv6 variables.
+       (uping_echo_callback): Incorporate uping_echo() body here, so the
+       proper socket FD can be used.
+       (uping_init): Attempt to set up both v4 and v6 UPING sockets.
+       (uping_server): Create uping socket with appropriate local address.
+
+       * doc/example.conf (General): Update example config file to
+       reflect removal of Resolver setting and support for separate IPv4
+       and IPv6 VHost settings.
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/sys.h (BITS_ZERO_ON_*, HAVE_RELIABLE_SIGNALS, DOCURSES,
+       DOTERMCAP, IRC_UID, IRC_GID, LIMIT_FMT, FALSE, TRUE): Remove
+       unused macros.
+
+       * ircd/ircd_auth.c, ircd/listener.c, ircd/s_auth.c, ircd/s_bsd.c,
+       ircd/s_conf.c, ircd/uping.c, ircd/whocmds.c: Remove obsolete
+       #include <arpa/inet.h>.
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/match.c: Remove obsolete #include <arpa/inet.h>.
+       (ipmask_parse_ipv4): We already parse the dotted quads from the
+       input string, so use them instead of inet_addr() to populate
+       out->s_addr.
+
+       * ircd/gline.c: Remove obsolete #includes <arpa/inet.h>, "sys.h".
+       (do_gline): Pass SHOW_IP instead of TRUE as argument to
+       get_client_name().
+
+       * ircd/ircd.c (try_connections): Revise to use fewer temporary
+       variables.
+
+2004-12-28  Michael Poole <mdpoole@troilus.org>
+
+       * include/res.h: Implement irc_in_addr_* as macros.
+
+       * ircd/ircd_res.c: Remove the function bodies.
+
+       * ircd/ircd_string.c (irc_in_addr_is_ipv4): Remove body.
+       (ircd_ntoa_r): Do not append extra ':' when unparsing 0::.
+       (ircd_aton): Accept IPv6 addresses with all eight segments
+       specified (e.g. 0:0:0:0:0:0:0:0).  Correctly parse addresses
+       with IPv4 bits at the end (e.g. ::FFFF:127.0.0.1).
+
+       * ircd/test/ircd_in_addr_t.c, ircd/test/test_stub.c: New files.
+
+       * ircd/test/Makefile: Convert to Makefile.in for proper VPATH
+       support.  Add test_stub.c and ircd_in_addr_t.c references.
+
+       * configure.in: Generate ircd/test/Makefile as an output file.
+
+       * configure: Update.
+
+2004-12-18  Michael Poole <mdpoole@troilus.org>
+
+       * include/client.h: Move unreg, privs, capab and active fields
+       from struct Client to struct Connection since that is how they
+       are really associated.  Adjust macros to match.
+       (SetPriv, ClrPriv): New macros.
+
+       * ircd/client.c (client_set_privs): Exit earlier for remote
+       clients.  Adjust macro use to correspond.
+
+       * ircd/m_server.c (mr_server): Grant all privileges except
+       PRIV_SET to peer servers.
+
+2004-12-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_user.c (hide_hostmask): Add a missing "break;" to fix bug
+       #1087461.
+
+2004-12-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/engine_kqueue.c (engine_loop): Remove an assertion that the
+       socket's FD is the same after processing as it was before; local
+       clients apparently have s_fd() == -1 after close.
+
+2004-12-18  Kevin L Mitchell  <klmitch@mit.edu>
+
+       * ircd/s_user.c: make absolutely certain register_user() is never
+       called with cli_unreg non-zero; transition set_nick_name() over to
+       the new way of determining whether client is ready for
+       register_user()
+
+       * ircd/s_err.c: add ERR_UNKNOWNCAPCMD for reporting failure to
+       understand a given CAP subcommand
+
+       * ircd/parse.c: add "CAP" command
+
+       * ircd/m_user.c (m_user): transition over to new way of
+       determining whether client is ready for register_user()
+
+       * ircd/m_pong.c (mr_pong): transition over to new way of
+       determining whether client is ready for register_user()
+
+       * ircd/m_cap.c: implementation of the IRC capabilities draft
+
+       * ircd/list.c (make_client): initialize cli_unreg element of
+       client structure
+
+       * ircd/ircd_string.c: correct old bugs in ircd_strn?cmp()
+       functions that were never found because cross-case ordering has
+       not been needed until now
+
+       * ircd/Makefile.in: add m_cap.c to list of .c files
+
+       * include/numeric.h (ERR_UNKNOWNCAPCMD): define new error reply to
+       indicate an unknown CAP subcommand
+
+       * include/msg.h: add "CAP" command
+
+       * include/handlers.h: add m_cap() to list of handlers
+
+       * include/client.h: add support for client capabilities; rototill
+       the registration mechanism to dovetail well with the capability
+       system--i.e., allow the capability system to suspend registration
+       if the user issues one of the CAP commands
+
+       * include/capab.h: header file to define client capabilities
+
 2004-12-17  Michael Poole <mdpoole@troilus.org>
 
        * ircd/channel.h (apply_ban): Add new flag to indicate whether