Fix SourceForge bug #1674539, and add a test for it.
[ircu2.10.12-pk.git] / ChangeLog
index 078d68a62634ac4d4947625cb65055d373f33975..38627755d272683c46c247a2bd2d00245fe1fb7f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,317 @@
+2007-03-05  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_privs.c (ms_privs): Use the correct source when
+       forwarding the PRIVS request.
+
+       * tests/bug-1674539.cmd: New file to test for this.
+
+       * tests/test-driver.pl: Recognize "oper" command from scripts.
+
+2007-03-05  Michael Poole <mdpoole@troilus.org>
+
+       * tests/ircd.conf: Make into a hub.
+
+       * tests/ircd-2.conf: New file, for a second server.
+
+       * tests/ircd-3.conf: Configuration for a third server.
+
+2007-03-04  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/whocmds.c (count_users): Fix length of ipbuf.  (Spotted by
+       paulr.)
+
+2007-02-28  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/os_generic.c (sockaddr_from_irc): Zero out socket address
+       before setting family, and regardless of whether we have an
+       irc_sockaddr template.
+
+2007-02-25  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf: Document new options for General block.
+       
+       * include/res.h (clear_nameservers): Declare new function.
+       (add_nameserver): Declare previously static function.
+
+       * include/s_bsd.h (VirtualHost_dns_v4): Declare.
+       (VirtualHost_dns_v6): Likewise.
+
+       * ircd/ircd_lexer.l (DNS): Recognize new token.
+
+       * ircd/ircd_parser.y (DNS): Declare new token.
+       (generalitem): Allow new items for dns vhost(s) and dns servers.
+       (generaldnsvhost): New production.
+       (generaldnsserver): New production.
+
+       * ircd/ircd_res.c (VirtualHost_dns_v4): New variable.
+       (VirtualHost_dns_v6): Likewise.
+       (clear_nameservers): New function.
+       (restart_resolver): Scan specified servers so we only try to open
+       DNS client sockets that we need.
+
+       * ircd/ircd_reslib.c (irc_nscount): Remove redundant initializer.
+       (irc_res_init): Only read the resolver config file if there are no
+       nameservers provided.
+       (add_nameserver): Make non-static.  Remove off-by-one check
+       against IRCD_MAXNS.
+
+       * ircd/s_conf.c (read_configuration_file): Clear nameserver list
+       before reading the config file.
+
+2007-01-27  Jeannot Langlois <jeannot12@linuxmail.org>
+
+       * doc/example.conf (Features): Illustrate URLREG feature.
+
+       * doc/readme.features (URLREG): Define new feature.
+
+       * include/ircd_features.h (Feature): Add FEAT_URLREG.
+
+       * ircd/ircd_features.c (features): Set the default value.
+
+       * ircd/m_join.c (m_join): For ERR_NEEDREGGEDNICK, include the
+       URLREG value as a format argument.
+
+       * ircd/s_err.c (replyTable): Update ERR_NEEDREGGEDNICK
+       appropriately.
+
+2007-02-03  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_reply.c (protocol_violation): Avoid reusing the
+       va_list in vd.
+
+       * ircd/send.c (sendcmdto_channel_butone): Warn against using %v in
+       the pattern -- that will cause incorrect behavior.
+       (sendwallto_group_butone): Likewise.
+       (sendcmdto_match_butone): Likewise.
+
+2007-01-22  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/channel.c (find_delayed_joins): New function.
+       (modebuf_flush): Handle +D-D and related cases.
+       (mode_parse_mode): It is too early to handle +D here, so don't.
+       (CheckDelayedJoins): Use find_delayed_joins().
+
+2007-01-22  Michael Poole <mdpoole@troilus.org>
+
+       * tests: New subdirectory for test framework.
+
+       * tests/ircd.conf: Helper file for testing.
+
+       * tests/readme.txt: Simple documentation of test framework.
+
+       * tests/test-driver.pl: Testing script interpreter.
+
+2007-01-22  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf: Fix potentially confusing comment about ip
+       mask syntax.
+
+2007-01-22  Michael Poole <mdpoole@troilus.org>
+
+       * INSTALL: Mention source directory naming; update the reference
+       to the config file converter (hah); update CVS directions.
+
+2007-01-22  Michael Poole <mdpoole@troilus.org>
+
+       * include/supported.h: Move parameters from FEATURES1 to FEATURES2
+       so that neither ISUPPORT line has more than 15 parameters.  (Some
+       clients are picky about this.)
+
+2007-01-21  Michael Poole <mdpoole@troilus.org>
+
+       * include/patchlevel.h (PATCHLEVEL): Bump for pre10 development.
+
+2007-01-20  Michael Poole <mdpoole@troilus.org>
+
+       * include/patchlevel.h (PATCHLEVEL): Bump for 2.10.12.09 release.
+
+2007-01-15  Michael Poole <mdpoole@troilus.org>
+
+       * doc/readme.iauth (U): Document extended fields.
+
+       * include/s_auth.h (auth_set_user): Declare new parameters.
+
+       * ircd/m_user.c (m_user): Pass new parameters.
+
+       * ircd/s_auth.c (auth_set_user): Accept new parameters.  When
+       using Undernet extensions, forward them to the iauth process.
+
+2007-01-14  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/os_generic.c (os_recv_nonb): Set errno to zero when
+       returning IO_FAILURE due to a closed connection.
+
+2006-12-31  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_mode.c (ms_mode): Bounce modes from deopped members.
+
+2006-12-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_string.c (ircd_strncpy): Make sure the output buffer
+       is terminated.  We don't rely on the arguable strncpy semantics.
+
+2006-12-30  Michael Poole <mdpoole@troilus.org>
+
+       * include/struct.h (struct Server): Add asll_last field.
+
+       * ircd/ircd.c (check_pings): Add check for asll_last.  When a
+       server doesn't ping, use an old-style ping rather than AsLL ping.
+
+       * ircd/m_pong.c (ms_pong): Use ClearPingSent() rather than
+       ClrFlag().  Set asll_last to current time.
+       (mr_pong): Use ClearPingSent() rather than ClrFlag().
+       (m_pong): Likewise.
+
+       * ircd/s_bsd.c (completed_connection): Likewise.
+       (read_packet): Likewise.  Update cli_lasttime for servers in
+       addition to clients.
+
+2006-01-13  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_burst.c (ms_burst): Properly handle member mode :ov.
+
+2006-01-13  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_create.c (ms_create): Add channel name to the protocol
+       violation notice for a redundant CREATE.
+
+2006-01-13  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_user.c (set_nick_name): Use user's account name rather
+       than the account parameter, in case the parameter contains a colon
+       (i.e. "account:1234" format).
+
+2006-01-13  Michael Poole <mdpoole@troilus.org>
+
+       * doc/readme.who: Document 'd' user-matching flag.
+
+2006-12-18  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_jupe.c (mo_jupe): Fix which privilege is tested.
+
+2006-12-07  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/listener.c (show_ports): Update to show '4' and/or '6' as
+       flags in response, with a '-' suffix if either one fails to open.
+
+2006-12-07  Michael Poole <mdpoole@troilus.org>
+
+       * doc/example.conf (Port): Document the method to select IPv4 or
+       IPv6 restriction for a port.
+
+       * include/listener.h (LISTEN_IPV4): New listener flag.
+       (LISTEN_IPV6): New listener flag.
+       (struct Listener): Split 'fd' and 'socket' fields into two each.
+
+       * ircd/ircd_lexer.l (gb): Move to be alphabetical.
+       (gigabytes): Likewise.
+       (ipv4): New token.
+       (ipv6): Likewise.
+       Adapted word matcher to handle digits in the non-leading character.
+
+       * ircd/ircd_parser.y (USE_IPV4): New macro.
+       (USE_IPV6): Likewise.
+       (TOK_IPV4): New token.
+       (TOK_IPV6): Likewise.
+       (address_family): New non-terminal rule.
+       (portblock): Default to listening on both IPv4 and IPv6.
+       (portnumber): Add address_family element and use it.
+       (portvhost): Likewise.
+
+       * ircd/listener.c (make_listener): Adjust for newly split fields
+       in struct Listener.
+       (inetport): Likewise.  Adjust return value as well.
+       (add_listener): Update to handle both IPv4 and IPV6 support.
+       (close_listener): Likewise.
+       (accept_connection): Because each listener has two sockets, it is
+       no longer safe to free the listener when one is destroyed -- so
+       don't.  Also accept() on the file descriptor from the incoming
+       event rather than on a fixed fd.
+
+       * ircd/os_generic.c (os_socket): For platforms with IPV6_V6ONLY,
+       enable it for AF_INET6 sockets rather than disabling it for
+       unspecified sockets.
+
+2006-12-06  Michael Poole <mdpoole@troilus.org>
+
+       * include/listener.h (enum ListenerFlag): New enum.
+       (struct Listener): Convert "active", "hidden" and "server" to a
+       flagset.
+       (add_listener): Convert "is_server" and "is_hidden" arguments to
+       use the same flagset structure.
+
+       * ircd/ircd_parser.y (listen_flags): New variable.
+       (general_vhost): Consolidate references to $3 to use a variable.
+       (portblock): Use listen_flags instead of tconn and tping.
+       (portserver): Likewise.
+       (porthidden): Likewise.
+
+       * ircd/listener.c (show_ports): Use new field in Listener.
+       (set_listener_options): New function.
+       (inetport): Use it.
+       (add_listener): Use new field in Listener.  When reusing an extant
+       listener, call set_listener_options() so the options are updated.
+       (mark_listeners_closing): Use new field in Listener.
+       (close_listeners): Use new helper macro to check activeness.
+       (release_listener): Likewise.
+       (accept_connection): Likewise.
+
+       * ircd/s_bsd.c (report_error): Use the standard snotice rate
+       limiting here.
+       (add_connection): Use new helper macro to check serverness.
+
+2006-11-04  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_nick.c (m_nick): If we get NICK on a server port, tell
+       the client to go away.
+
+2006-11-04  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/version.c.SH: Skip version.c.
+
+2006-11-04  Michael Poole <mdpoole@troilus.org>
+
+       * doc/readme.who: Document new 'o' field flag.
+
+       * include/whocmds.h (WHO_FIELD_OPL): New flag.
+
+       * ircd/channel.c (send_channel_modes): Rename feat_oplevels to
+       send_oplevels and determine it automatically.
+       (modebuf_flush_int): Pass along oplevel if it's less than
+       MAXOPLEVEL.
+       (mode_process_clients): Allow oplevels to be inherited for -A
+       channels.  Inherit the opper's oplevel if >= MAXOPLEVEL.
+
+       * ircd/m_who.c (m_who): Recognize 'o' flag as WHO_FIELD_OPL.
+
+       * ircd/whocmds.c (do_who): Send oplevel for WHO_FIELD_OPL, but
+       only show up to the requester's own oplevel.
+
+2006-10-21  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/convert-conf.c (finish_connects): Fix error display for
+       missing C: lines when an H: line is present.
+
+2006-08-02  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y (connectblock): Check for too-long password.
+       (operblock): Comment why we don't check password length.  Move
+       PRIV_PROPAGATE test earlier (so a buggy edit, rehash, /oper will
+       not crash).
+       (clientblock): Check for too-long password.
+
+2006-08-02  Michael Poole <mdpoole@troilus.org>
+
+       * include/channel.h (struct Ban): Fix typo in doxygen comment.
+
+2006-07-09  Michael Poole <mdpoole@troilus.org>
+
+       * include/patchlevel.h (PATCHLEVEL): Bump for pre09.
+
+2006-07-09  Michael Poole <mdpoole@troilus.org>
+
+       * include/patchlevel.h (PATCHLEVEL): Bump for 2.10.12.08 release.
+
 2006-07-05  Michael Poole <mdpoole@troilus.org>
 
        * ircd/s_auth.c (auth_freelist): New static variable.