X-Git-Url: https://jfr.im/git/irc/quakenet/snircd.git/blobdiff_plain/1b2074c8ed6c4ba37107555031f87898dbc9d75e..730421e51d886323d4897615ba1fb4c1ca88cdf6:/ChangeLog?ds=sidebyside diff --git a/ChangeLog b/ChangeLog index e8886a9..49c5f51 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1117 @@ +2007-03-09 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for u2.10.12.10 release. + +2007-03-05 Michael Poole + + * 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 + + * 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 + + * ircd/whocmds.c (count_users): Fix length of ipbuf. (Spotted by + paulr.) + +2007-02-28 Michael Poole + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * doc/example.conf: Fix potentially confusing comment about ip + mask syntax. + +2007-01-22 Michael Poole + + * INSTALL: Mention source directory naming; update the reference + to the config file converter (hah); update CVS directions. + +2007-01-22 Michael Poole + + * 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 + + * include/patchlevel.h (PATCHLEVEL): Bump for pre10 development. + +2007-01-20 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for 2.10.12.09 release. + +2007-01-15 Michael Poole + + * 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 + + * 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 + + * ircd/m_mode.c (ms_mode): Bounce modes from deopped members. + +2006-12-30 Michael Poole + + * 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 + + * 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 + + * ircd/m_burst.c (ms_burst): Properly handle member mode :ov. + +2006-01-13 Michael Poole + + * ircd/m_create.c (ms_create): Add channel name to the protocol + violation notice for a redundant CREATE. + +2006-01-13 Michael Poole + + * 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 + + * doc/readme.who: Document 'd' user-matching flag. + +2006-12-18 Michael Poole + + * ircd/m_jupe.c (mo_jupe): Fix which privilege is tested. + +2006-12-07 Michael Poole + + * 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 + + * 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 + + * 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 + + * 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 + + * ircd/version.c.SH: Skip version.c. + +2006-11-04 Michael Poole + + * 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 + + * ircd/convert-conf.c (finish_connects): Fix error display for + missing C: lines when an H: line is present. + +2006-08-02 Michael Poole + + * 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 + + * include/channel.h (struct Ban): Fix typo in doxygen comment. + +2006-07-09 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for pre09. + +2006-07-09 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for 2.10.12.08 release. + +2006-07-05 Michael Poole + + * 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 + + * ircd/ircd_parser.y (iauth*): Avoid leaking program name string. + +2006-06-30 Michael Poole + + * 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 + + * include/patchlevel.h (PATCHLEVEL): Bump for pre08. + +2006-06-26 Michael Poole + + * include/patchlevel.h (PATCHEVEL): Bump for release. + +2006-06-17 Michael Poole + + * ircd/m_pass.c (mr_pass): Only back 'len' up when it's safe. + +2006-06-08 Michael Poole + + * 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 + + * ircd/m_gline.c (ms_gline): Use final argument as G-line reason. + +2006-06-08 Michael Poole + + * 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 + + * doc/example.conf: Document the list_chan privilege. + + * ircd/ircd_lexer.l: Recognize the token. + + * ircd/ircd_parser.y: Treat it appropriately. + +2006-06-07 Michael Poole + + * ircd/s_auth.c (auth_ping_timeout): If the client never had an + auth request, kill them on ping timeout. + +2006-06-05 Michael Poole + + * ircd/s_auth.c (auth_timeout_callback): Clear AR_DNS_PENDING when + destroying the lookup and reporting DNS failure. + +2006-05-28 Michael Poole + + * doc/readme.features (MAXBANS): Update default value. + (NICKLEN): Likewise. + (HIS_STATS_*): Sort alphabetically. + + * ircd/m_stats.c (m_stats): Describe the intention so that there + are not further questions about local opers and remote /stats. + Fix places that use cptr instead of sptr. + +2006-05-24 Michael Poole + + * ircd/s_auth.c (auth_dns_callback): Be more careful about + handling failed DNS lookups. Use a more standard function to + disconnect clients for IP mismatches. + (start_auth): Use a more standard function to disconnect clients + for peer or local socket address lookup failures. + +2006-05-17 Michael Poole + + * ircd/s_auth.c (auth_ping_timeout): Fix off-by-one error. + +2006-05-17 Michael Poole + + * ircd/Makefile.in (install-*): Install convert-conf. Install + umkpasswd when ${BINDIR}/ircd is not a symlink. + +2006-05-15 Michael Poole + + * ircd/s_auth.c (check_auth_finished): Only check passwords on + user ports. + +2006-05-14 Michael Poole + + * doc/example.conf (Connect): Mention the vhost option. + +2006-05-08 Michael Poole + + * ircd/m_pong.c (mr_pong): Move cli_lasttime update from here... + + * ircd/s_auth.c (auth_set_pong): ... to here. + +2006-05-07 Michael Poole + + * include/s_auth.h (auth_ping_timeout): Declare new function. + + * ircd/ircd.c (check_pings): Move auth timeout logic into that new + function. + + * ircd/s_auth.c (HeaderMessages): Insert new message. + (auth_ping_timeout): Define new function. + (auth_timeout_callback): Remove "hurry" notification from here. + +2006-05-07 Michael Poole + + * include/s_auth.h (destroy_auth_request): Remove second argument. + + * ircd/list.c (free_client): Update to match. + + * ircd/s_auth.c (check_auth_finished): Remove second argument and + update call to destroy_auth_request(). + (send_auth_query): Update call to destroy_auth_request(). + (destroy_auth_request): Remove second argument. + (auth_timeout_callback): Send timeout failure messages here + instead. Update call to check_auth_finished(). + (auth_dns_callback): Update call to check_auth_finished(). + (start_auth): Likewise. + (auth_set_pong): Likewise. + (auth_set_user): Likewise. + (auth_set_nick): Likewise. + (auth_cap_done): Likewise. + (iauth_parse): Likewise. + +2006-05-06 Michael Poole + + * ircd/s_auth.c (AuthRequestFlag): Add AR_PASSWORD_CHECKED. + (check_auth_finished): Move password check out of iauth-only part + and use AR_PASSWORD_CHECKED to make sure we only check it once. + +2006-04-28 Michael Poole + + * ircd/s_auth.c (AuthRequest): Clarify comment on 'timeout' field. + (check_auth_finished): Fix timeout update. + (destroy_auth_request): Only delete timer if it is active. + (auth_timeout_callback): Do not disconnect client on timeout, so + that the user can finish sending NICK/USER or doing iauth. + +2006-04-28 Michael Poole + + * doc/example.conf (Admin): Fix documentation of which line can be + listed twice. + + * ircd/ircd_parser.y (adminblock): Allow admin information to be + changed via /rehash. + +2006-04-06 Michael Poole + + * ircd/s_auth.c (start_auth): Add client to list after getting + endpoint names (which can apparently fail for some reason). + +2006-04-06 Michael Poole + + * ircd/ircd_snprintf.c: Use SIZEOF_LONG_LONG (which is 0 for + unknown types) instead of the never-defined HAVE_LONG_LONG. + +2006-04-06 Michael Poole + + * doc/example.conf (IAuth): Update to reflect new syntax. + + * doc/readme.who: Fix typo in metasyntactic variable name. + +2006-04-04 Michael Poole + + * include/patchlevel.h: Update for pre07. + +2006-04-04 Michael Poole + + * include/patchlevel.h: Update for u2.10.12.06 release. + +2006-04-03 Michael Poole + + * ircd/channel.c (bmatch): If ipmask_check() indicates old_ban is + a CIDR-wise superset of new_ban, check whether new_ban is a + text-wise superset of old_ban. + +2006-03-31 Michael Poole + + * tools/iauth-test (send_server_notice): Use a colon prefix before + the message. + (%handlers): Likewise. + +2006-03-24 Michael Poole + + * ircd/ircd_signal.c (alloc_crec): Zero-fill returned + ChildRecord structs. + + * ircd/jupe.c (make_jupe): Zero-fill newly allocated jupes. + + * ircd/list.c (make_link): Zero-fill returned SLink structs. + + * ircd/whowas.c (whowas_init): Delete function. + (whowas_alloc): Rewrite to follow the more common pattern and to + zero-fill returned Whowas structs. + +2006-03-23 Kevin L. Mitchell + + * ircd/s_auth.c: rewrite iauth_read(), spliting out the parsing + into iauth_parse(); change parsing to separate parameters and deal + with the ':' sentinel; send sentinel in multi-word parameters; fix + iauth_cmd_config() and iauth_cmd_stats() to clear the 'next' + pointer in the SLink structure; fix buffering in + iauth_read_stderr(); remove carriage returns from STDERR contents + as well + + * doc/readme.iauth: fix a minor typo in comments for 'd' and 'N' + server messages + +2006-03-18 Michael Poole + + * ircd/convert-conf.c (finish_features): Do not emit a feature + setting that has no values. + +2006-03-18 Michael Poole + + * ircd/channel.c (mode_parse_key): Outside of burst, allow + overwriting of keys by a service when a key is already set. + (mode_parse_upass): Likewise. Instead, ignore new Upass during + burst if it is lexicographically greater than the current one. + (mode_parse_apas): Likewise for Apass, but only allow overwiting + an existing Apass in a BURST. + +2006-03-18 Michael Poole + + * ircd/channel.c (modebuf_flush_int): Fix typo about changing + oplevels. Send correct channel TS for modes to other servers. + (mode_parse): Accept timestamps on modes from users on other + servers. If the received timestamp is too large, handle that. + + * ircd/m_create.c (ms_create): Mention the CREATE-during-burst + case and handle it. + + * ircd/m_mode.c (ms_mode): Put back HACK(3) when oplevels are off. + +2006-03-14 Wouter Coekarts + + * ircd/s_err.c (RPL_STATSILINE): Add two %s to the first field. + + * ircd/s_stats.c (stats_configured_links): Use the new %s's to + show username masks for I: lines that have them. + (stats_access): Likewise. + +2006-03-13 Michael Poole + + * ircd/msgq.c (msgq_vmake): Try to clear msgbuf freelist after + killing clients, so that that case does not lead immediately to a + server panic. + (msgq_count_memory): Report total buffer text used as a way to + determine whether the BUFFERPOOL value is marginal. + +2006-03-02 Michael Poole + + * include/ircd_osdep.h (os_socket): New parameter. + + * include/res.h (irc_in_addr_unspec): New macro. + + * ircd/ircd_res.c (restart_resolver): Set family appropriately. + + * ircd/listener.c (inetport): Let os_ library pick socket family. + + * ircd/os_generic.c: Do not #define _XOPEN_SOURCE on FreeBSD 5+. + (sockaddr_from_irc): New parameter. + (os_sendto_nonb): Use new parameter to sockaddr_from_irc(). + (os_socket): New parameter. Try to turn off IPV6_V6ONLY on + sockets that listen on unspecified addresses. + (os_connect_nonb): Use new parameter to sockaddr_from_irc(). + + * ircd/s_auth.c (start_auth_query): Let os_ library pick socket + family. + + * ircd/s_bsd.c (connect_inet): If we pick the IPv4 vhost, specify + family for os_socket() as AF_INET. + + * ircd/uping.c (uping_init): Set socket family appropriately. + (uping_server): Likewise. + (uping_end): Fix format strings (the ms_* fields are int, not + long, and this causes bad results on LP64 machines). + +2006-02-22 Michael Poole + + * ircd/m_silence.c (apply_silence): Refuse to apply silences for + local users that are broader than an IPv4 /16 or an IPv6 /32, + unless they match every host indiscriminately. + +2006-02-22 Michael Poole + + * ircd/s_auth.c (check_auth_finished): Give non-iauth clients + connection classes, too. + (auth_close_unused): Remove redundant check for iauth != NULL. + (report_iauth_conf): Check iauth != NULL before deref'ing it. + (report_iauth_stats): Likewise. + +2006-02-22 Kevin L. Mitchell + + * ircd/s_auth.c: fix macros to not dereference a NULL pointer when + iauth is not connected + +2006-02-17 Alex Badea + + * ircd/s_auth.c (auth_set_username): Check if the last + character of the username is alphanumeric, instead of the + '\0' terminator. + + * ircd/m_pong.c (mr_pong): Parse cookie with strtoul(), + since atol() causes signedness problems. + +2006-02-15 Michael Poole + + * include/res.h (NXDOMAIN): Define. + + * ircd/ircd_res.c (res_readreply): Treat NXDOMAIN just like + SERVFAIL. Patch courtesy of Dianora. + + * tools/iauth-test (Carp): This doesn't actually use Carp. + +2006-02-15 Michael Poole + + * doc/example.conf: Include new HIS_STATS_IAUTH feature. + + * doc/readme.features: Document the feature. + + * doc/readme.iauth: Rewrite to reflect the new progressive iauth + protocol, based on IRCnet's iauth. + + * doc/snomask.html: Document SNO_AUTH server notice flag. + + * include/client.h (FLAG_IAUTHED): Delete. + (con_cookie): Delete. + (con_unreg): Delete. + (con_auth): Make comment capitalization consistent. + (con_iauth): Delete. + (CLIREG_*): Delete. + (cli_unreg): Delete. + (cli_cookie): Delete. + (cli_iauth): Delete. + (con_unreg): Delete. + (con_iauth): Delete. + (IsIAuthed): Delete. + (SetIAuthed): Delete. + (SNO_AUTH): New server notice flag. + (SNO_ALL): Update to include SNO_AUTH. + (SNO_OPER): Update to include SNO_AUTH. + + * include/ircd_auth.h: Delete file. + + * include/ircd_features.h (HIS_STATS_IAUTH): New feature. + + * include/s_auth.h: Rewrite almost everything for new auth system. + + * include/s_user.h (COOKIE_VERIFIED): Delete. + (register_user): Remove redundant nick and username arguments. + + * ircd/ircd_auth.c: Delete file. + + * ircd/ircd_features.c (HIS_STATS_IAUTH): New feature. + + * ircd/ircd_lexer.l (PROGRAM): New token in grammar. + + * ircd/ircd_log.c (masks): Add SNO_AUTH flag. + + * ircd/ircd_parser.y (stringlist): Simplify production. + (iauthblock): Revise to only include a PROGRAM production. + + * ircd/list.c (make_client): Do not assign to deleted field. + + * ircd/m_cap.c (cap_ls): Use auth_cap_start() instead of + cli_unreg(). + (cap_req): Likewise. + (cap_end): Use auth_cap_done() instead of cli_unreg(). + + * ircd/m_pass.c (mr_pass): Merge arguments to PASS. Use + auth_set_password() to notify iauth of password. + + * ircd/m_pong.c (mr_pong): Use auth_set_pong() instead of + cli_cookie() and cli_unreg(). + + * ircd/m_user.c (m_user): Use auth_set_user() instead of + cli_unreg(), etc. + + * ircd/s_auth.c: Rewrite most of the infrastructure for the new + auth system. + + * ircd/s_conf.c (rehash): Call auth_*() instead of iauth_*(). + + * ircd/s_misc.c (exit_one_client): Do not use iauth_exit_client(). + (exit_client): Use auth_send_exit() instead. + + * ircd/s_stats.c (statsinfo): Include iauth and iauthconf. + + * ircd/s_user.c (clean_user_id): Delete (moved into s_auth.c). + (register_user): Remove nick and username parameters; move conf + interactions and username validation to s_auth.c. + (set_nick_name): Use auth_set_nick() instead of cli_cookie(), + cli_unreg(), etc. + + * tools/iauth-test: Implementation of iauth for testing purposes. + +2006-02-15 Michael Poole + + * ircd/ircd_snprintf.c (doprintf): Fix typecast for %hu. + +2006-02-15 Michael Poole + + * include/ircd_signal.h (SigChldCallBack): New typedef. + (register_child): Declare. + (unregister_child): Declare. + (reap_children): Declare. + + * ircd/ircd_signal.c (alloc_crec): New function. + (release_crec): New function. + (register_child): New function. + (do_unregister_child): New function. + (unregister_child): New function. + (sigchld_callback): New function. + (setup_signals): Hook SIGCHLD. + (reap_children): New function. + + * ircd/ircd.c (server_restart): Call reap_children() on exit. + +2006-02-15 Michael Poole + + * include/ircd_osdep.h (os_socketpair): Declare. + + * ircd/os_generic.c (is_blocked): New local function. + (os_*): Use is_blocked() instead of cut-and-pasted code. + (os_socketpair): New function. + +2006-02-15 Michael Poole + + * ircd/match.c (match): Fix backtracking bug after an escape + (reported by Michael, I think). + +2006-02-04 Michael Poole + + * ircd/ircd.c (try_connections): Scan all Connect blocks for the + earliest hold time (suggested by Michael). + +2006-02-04 Michael Poole + + * ircd/m_join.c (m_join): Remove #if 0 code and update comment. + + * ircd/m_mode.c (ms_mode): Remove self-op support. + +2006-01-12 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Update for 2.10.12.pre06. + +2006-01-12 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Update for release. + +2006-01-11 Michael Poole + + * doc/Makefile.in: Make install target VPATH-safe. + + * doc/example.conf: Comment out example IAuth block. + + * ircd/m_burst.c (ms_burst): Change isdigit() to IsDigit(), + silencing a warning on Solaris. + +2006-01-09 Michael Poole + + * ircd/s_user.c (register_user): Do not send +r flag to user when + they first connect. + +2006-01-09 Michael Poole + + * include/ircd_features.h (FEAT_ZANNELS): Actually, put it back. + + * ircd/ircd_features.c (FEAT_ZANNELS): Likewise. + +2006-01-06 Michael Poole + + * ircd/channel.c (mode_process_clients): Do not reveal zombies who + are being opped (MODE and KICK crossed). Reported by coekie. + +2006-01-06 Michael Poole + + * ircd/m_join.c (ms_join): Wipe out all modes (not just chanops) + when replacing a resurrected channel. + + * ircd/convert-conf.c (dupstring): Fix probable off-by-one size + passed to memcpy(). + +2006-01-03 Michael Poole + + * ircd/channel.c (modebuf_flush_int): Also send timestamp when &me + originates the MODE going to other servers (currently just when a + client joins a zannel or uses an A/U password). + +2006-01-02 Michael Poole + + * include/ircd_features.h (FEAT_ZANNELS): Remove. + + * ircd/channel.c (sub1_from_channel): Remove reference to + FEAT_ZANNELS. + + * ircd/ircd_features.c (FEAT_ZANNELS): Remove. + + * ircd/m_destruct.c (ms_destruct): Do not try to remove a destruct + event for channels that do not have them (created by BURSTing a + zannel but not yet destroyed by EOB). + +2005-12-31 Michael Poole + + * ircd/m_whowas.c (m_whowas): Mention that IP is untracked in WHOWAS. + Spotted by Progs. + +2005-12-30 Michael Poole + + * ircd/m_topic.c: Remove block comment about sptr, cptr, etc. + (do_settopic): Add doxygen comment. Move permissions checks.. + (m_topic): .. to here. Update doxygen comment. + (ms_topic): Update doxygen comment here too. + +2005-12-30 Michael Poole + + * ircd/s_conf.c (conf_debug_iline): Fix display of null passwords. + +2005-12-30 Michael Poole + + * RELEASE.NOTES: Mention removal of HIS_STATS_h. + + * ircd/convert-conf.c (removed_features): Add AUTOHIDE, + HIS_DESYNCS and TIMESEC. + (get_connect): Do not downcase connection name on insert. + (do_feature): Do not upcase feature name (cf HIS_STATS_k). + +2005-12-30 Michael Poole + + * ircd/engine_devpoll.c (engine_loop): Remove bogus assert. + +2005-12-31 Perry Lorier + + * convert-conf.c: Skip with a warning, H:'s that are missing a + corresponding C: + +2005-12-28 Michael Poole + + * ircd-patch: Do not use [ for test, and do not use $[] for expr. + (Solaris /bin/sh, among others, have problems with those.) + +2005-12-23 Michael Poole + + * config.guess: Update to current version. + + * config.sub: Likewise. + +2005-12-23 Kevin L. Mitchell + + * ircd/m_join.c: get rid of MAGIC_REMOTE_JOIN_TS; perform the + deop-other-users loop only when creation < channel timestamp or + when the channel in question happens to be a zannel; actually deop + users, don't just say we are and not do it + + * ircd/m_create.c (ms_create): get rid of MAGIC_REMOTE_JOIN_TS + + * include/channel.h: get rid of MAGIC_REMOTE_JOIN_TS + +2005-12-13 Michael Poole + + * configure.in: Define a macro when compiling on Solaris. + + * ircd/ircd_crypt_native.c (_XOPEN_SOURCE): Turn down to 500 so + that Solaris doesn't complain that SUSv3 requires C99. + + * ircd/os_generic.c (_XOPEN_SOURCE): Likewise, but leave it at 600 + on non-Solaris platforms so that IPv6 stays supported. + +2005-12-13 Michael Poole + + * ircd/m_join.c (ms_join): Prevent net rides allowed by moving the + channel timestamp backwards in time without deopping current ops. + (Reported by Wouter Coekaerts.) + +2005-12-13 Michael Poole + + * doc/example.conf: Remove extraneous "Other" Client block. + + * ircd/convert-conf.c (finish_operators): Fix operator precedence + bug. + + * ircd/ircd_parser.y (clientclass): Fix typo in error message. + +2005-11-27 Michael Poole + + * ircd/Makefile.in (version.c): version.c also depends on + version.h, patchlevel.h and source files. + +2005-11-27 Michael Poole + + * ircd/m_join.c (m_join): Count a join to a new channel as a + target change. + +2005-11-19 Michael Poole + + * ircd/s_stats.c (stats_servers_verbose): Display IPv6 support + flag with the other per-server flags. + +2005-11-19 Michael Poole + + * ircd/convert-conf.c (finish_features): Only emit "Features {" + once in the converted configuration file. Display the original + input line for each feature line in the output. + +2005-11-18 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Update for pre05. + +2005-11-18 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Update for release. + +2005-11-15 Brian Cline + + * doc/example.conf: Add new line for HIS_MODEWHO feature. + + * doc/readme.features: Document new HIS_MODEWHO feature. + + * include/ircd_features.h: Declare new HIS_MODEWHO feature. + + * ircd/channel.c (modebuf_flush_int): Use new HIS_MODEWHO feature + to show or hide the server name that performed a channel mode change. + + * ircd/ircd_features.c: Place new HIS_MODEWHO setting in the feature + table and give it a default value of true, which will hide the + originating server name. + +2005-11-16 Michael Poole + + * doc/example.conf (Features): Mention ZANNELS default. + + * doc/readme.features: Document OPLEVELS and ZANNELS. + +2005-11-17 Carlo Wood + + * include/ircd_features.h (Feature): Add ZANNELS. + * ircd/ircd_features.c (FeatureDesc): idem. + * ircd/channel.c (sub1_from_channel): Don't keep zannels + around when ZANNELS and OPLEVELS are FALSE. + * ircd/m_destruct.c (ms_destruct): Use JOIN instead of + CREATE to recreate a non-empty channel after DESTRUCT. + +2005-11-16 Michael Poole + + * tools/convert-conf.py: Delete obsolete code. + +2005-11-16 Michael Poole + + * ircd/m_names.c (m_names): Fix handling of NAMES #a,#b. + (ms_names): Likewise. + +2005-11-15 Michael Poole + + * ircd/m_nick.c (ms_nick): Clarify message when an older nick + overrules a newer nick. When killing a client for a nick + collision, make sure to use the numnick as the first argument. + +2005-11-14 Michael Poole + + * ircd/channel.c (member_can_send_to_channel): After prodding from + reed, always allow remote users to send to a channel. He also + pointed out a bug in the first version of this change. + +2005-11-14 Carlo Wood + + * ircd/channel.c (modebuf_flush_int): Fix test for limitdel. + (modebuf_mode_uint): Make sure the limit is included as an + argument when necessary (and only when necessary) in a bounce. + + * ircd/m_destruct.c (ms_destruct): Generate a mode bounce instead + of burst to resynchronize a non-empty destructed channel. + +2005-11-14 Michael Poole + + * ircd/channel.c (find_no_nickchange_channel): Disallow nick + changes by voiceless no-account users on a +r channel. + +2005-11-14 Michael Poole + + * ircd/m_kick.c (ms_kick): Fix test for whether a client's own + server is kicking him. + +2005-11-13 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for pre04. + +2005-11-13 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Update for release. + +2005-11-13 Carlo Wood + + * ircd/m_create (ms_create): Accept CREATE for zannels. + + * ircd/m_join.c (m_join): MODE +o for a zannel must come from the + server for compatibility with older versions. + +2005-11-12 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Bump for pre03. + +2005-11-12 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Update for release. + +2005-11-11 Michael Poole + + * ircd/ircd_res.c (proc_answer): Follow CNAME when doing A + and AAAA lookups as well as PTR. + +2005-11-07 Michael Poole + + * ircd/channel.c (mode_parse_client): Allow clients to specify + oplevel in MODE #channel +o. + (mode_process_clients): Allow oplevel 999 to deop another 999. + + * ircd/kick.c (m_kick): Allow oplevel 999 to kick another 999. + +2005-10-31 Michael Poole + (Based on a patch by Romain Bignon ) + + * ircd/channel.c: Some modes (currently only WASDELJOINS) should + not be propagated to remote servers. + +2005-10-30 Michael Poole + + * ircd/channel.c (mode_parse_apass): Move all send_reply() errors + inside an if (MyUser(state->sptr)) test. + + * ircd/m_join.c (m_join): Reorganize zannel join check to match + surrounding code. + +2005-10-30 Carlo Wood + + * ircd/channel.c (sub1_from_channel): Delay destruction for -A + channels. They become zombie channels (zannels). + (mode_parse_upass): Add duration to ERR_NOMANAGER message. + (mode_parse_apass): Likewise. Unconditionally set the member who + sets Apass as oplevel 0. Clear Upass when clearing Apass. + (joinbuf_join): Remove code to pass oplevel in JOIN. + + * ircd/m_burst.c (ms_burst): Handle zannels. + + * ircd/m_join.c (m_join): Handle a join to a zannel. If the user + is joining with ops and/or an oplevel, send those. + (ms_join): Stop trying to parse oplevels in JOIN. Copy join + timestamp when a user joins a zannel. + + * ircd/m_mode.c (ms_mode): Never generate HACK3. Silently allow a + user to op himself if he is the only one in a channel. + + * ircd/s_err.c (ERR_UPASSSET): Remove extra space. + (ERR_UPASSNOTSET): Likewise. + (ERR_NOMANAGER): Add field for channel lifetime. + +2005-10-30 Michael Poole + + * ircd/m_join.c (m_join): Fix check for OVERRIDE when the real + channel key is OVERRIDE. (Reworked patch from a1kmm.) + +2005-10-30 Michael Poole + + * .cvsignore: Add autom4te.cache. + + * ircd/.cvsignore: Add convert-conf. + + * ircd/test/.cvsignore: Add ircd_match_t. + + * patches/.cvsignore: Add marks. + +2005-10-28 Alex Badea + + * ircd/m_kick.c (ms_kick): Fix format string typo (bug #1339538) + +2005-10-17 Diane Bruce + + * ircd/ircd_res.c: Don't send retries if the client did + not resolve (SERVFAIL); this fixes a bug causing a flurry + of retries in this case + +2005-10-14 Michael Poole + + * include/patchlevel.h (PATCHLEVEL): Update to pre02. + 2005-10-14 Michael Poole * doc/readme.cvs: Document tag name consistently with the release