Allow per-port specification of address family, and use separate
[ircu2.10.12-pk.git] / ChangeLog
index ab4289430419d7bca7bb14669e75a7cbf054e0a4..93f78e035eaead5473be1785b2607b35d19febde 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,165 @@
+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.
+       (check_auth_finished): Move call to destroy_auth_request().
+       (destroy_auth_request): Prepend auth request to freelist.
+       (start_auth): Use struct from auth freelist if possible.
+
+2006-06-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/ircd_parser.y (iauth*): Avoid leaking program name string.
+
+2006-06-30  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/s_auth.c (check_auth_finished): Free auth structure when
+       done with it.
+       (sendto_iauth): Free message buffer when done with it.
+
+2006-06-26  Michael Poole <mdpoole@troilus.org>
+
+       * include/patchlevel.h (PATCHLEVEL): Bump for pre08.
+
+2006-06-26  Michael Poole <mdpoole@troilus.org>
+
+       * include/patchlevel.h (PATCHEVEL): Bump for release.
+
+2006-06-17  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_pass.c (mr_pass): Only back 'len' up when it's safe.
+
+2006-06-08  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_whois.c (do_whois): Prefix '*' to names of secret (local)
+       channels for locops as well as global opers.
+
+2006-06-08  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/m_gline.c (ms_gline): Use final argument as G-line reason.
+
+2006-06-08  Michael Poole <mdpoole@troilus.org>
+
+       * ircd/gline.c (gline_stats): Show activation state in /stats g.
+
+       * ircd/s_err.c (RPL_STATSGLINE): Update format string to match.
+
 2006-06-07  Michael Poole <mdpoole@troilus.org>
 
        * doc/example.conf: Document the list_chan privilege.