+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.
+
+ * ircd/ircd_lexer.l: Recognize the token.
+
+ * ircd/ircd_parser.y: Treat it appropriately.
+
+2006-06-07 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * ircd/s_auth.c (auth_timeout_callback): Clear AR_DNS_PENDING when
+ destroying the lookup and reporting DNS failure.
+
+2006-05-28 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * ircd/s_auth.c (auth_ping_timeout): Fix off-by-one error.
+
+2006-05-17 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/Makefile.in (install-*): Install convert-conf. Install
+ umkpasswd when ${BINDIR}/ircd is not a symlink.
+
+2006-05-15 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_auth.c (check_auth_finished): Only check passwords on
+ user ports.
+
+2006-05-14 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf (Connect): Mention the vhost option.
+
+2006-05-08 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * doc/example.conf (IAuth): Update to reflect new syntax.
+
+ * doc/readme.who: Fix typo in metasyntactic variable name.
+
+2006-04-04 Michael Poole <mdpoole@troilus.org>
+
+ * include/patchlevel.h: Update for pre07.
+
+2006-04-04 Michael Poole <mdpoole@troilus.org>
+
+ * include/patchlevel.h: Update for u2.10.12.06 release.
+
+2006-04-03 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * tools/iauth-test (send_server_notice): Use a colon prefix before
+ the message.
+ (%handlers): Likewise.
+
+2006-03-24 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <klmitch@mit.edu>
+
+ * 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 <mdpoole@troilus.org>
+
+ * ircd/convert-conf.c (finish_features): Do not emit a feature
+ setting that has no values.
+
+2006-03-18 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <wouter@coekaerts.be>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <klmitch@mit.edu>
+
+ * ircd/s_auth.c: fix macros to not dereference a NULL pointer when
+ iauth is not connected
+
+2006-02-17 Alex Badea <vamposdecampos@gmail.com>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * ircd/ircd_snprintf.c (doprintf): Fix typecast for %hu.
+
+2006-02-15 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
+
+ * ircd/match.c (match): Fix backtracking bug after an escape
+ (reported by Michael, I think).
+
+2006-02-04 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd.c (try_connections): Scan all Connect blocks for the
+ earliest hold time (suggested by Michael).
+
+2006-02-04 Michael Poole <mdpoole@troilus.org>
+
+ * 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 <mdpoole@troilus.org>
* include/patchlevel.h (PATCHLEVEL): Update for 2.10.12.pre06.