+2004-12-13 Michael Poole <mdpoole@troilus.org>
+
+ * doc/example.conf: Update configuration to move Client block
+ comment after sample Class blocks, and update entries in it.
+
+ * ircd/ircd_lexer.y: Recognize IP and USERNAME tokens.
+
+ * ircd/ircd_parser.y: Add ip and username global variables and IP
+ and USERNAME tokens. Add clientip and clientusername alternatives
+ for clientitem, and update clientblock to correspond.
+
+ * ircd/ircd_res.c (delete_resolver_queries): Do not try to walk
+ the request_list before request_list is initialized.
+ (cres_mem): Likewise.
+
+ * ircd/os_generic.c (sockaddr_from_irc): Improve guessing of
+ proper address family.
+
+ * ircd/s_conf.c (attach_iline): Allow aconf->host == NULL, which
+ means DNS reply is optional. If aconf->addrbits >= 0, test it.
+
+ * tools/crypter: Delete.
+
+2004-12-11 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/*.c: use new assert() in ircd_log.h in preference to system
+ assert()
+
+ * ircd/umkpasswd.c: use new assert in ircd_log.h; add necessary
+ glue so that umkpasswd will successfully compile and link
+
+ * ircd/test/ircd_chattr_t.c: comment out include of assert.h since
+ there are no calls to assert()
+
+ * ircd/ircd_log.c: add sentinel (log_inassert) to prevent assert()
+ from looping should there be an assertion failure somewhere in the
+ logging subsystem
+
+ * include/ircd_log.h: custom implementation of assert() that calls
+ log_write()
+
+2004-11-21 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/channel.c (mode_parse_upass): Allow forced mode changes to
+ be done by non-channel-managers, fixing a crash from OPMODE.
+ (mode_parse_apass): Likewise.
+
+2004-11-20 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_create.c (ms_create): Complain if a user tries to CREATE
+ a channel they are already in, but do not add them again.
+
+2004-11-09 Michael Poole <mdpoole@troilus.org>
+
+ * include/res.h (init_resolver): Delete, and initialize lazily.
+
+ * ircd/ircd.c (main): Do not call init_resolver().
+
+ * ircd/ircd_res.c (restart_resolver): Use default VirtualHost for
+ local resolver socket address.
+ (init_resolver): Delete.
+ (make_request): Call restart_resolver() if necessary.
+ (query_name): Use ircrandom() instead of rand().
+
+ * ircd/os_generic.c (sockaddr_from_irc): Convert last argument to
+ a file descriptor that indicates the socket family to use.
+ (os_sendto_nonb,os_socket,os_connect_nonb): Update to match.
+
+2004-11-09 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/engine_epoll.c (engine_delete): Do not attempt to remove a
+ socket from epoll on delete, since the kernel does that for us.
+
+2004-11-07 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_server.c (m_server, ms_server): Assign timestamp before
+ it might be used in exit_new_server().
+
+2004-11-07 Michael Poole <mdpoole@troilus.org>
+
+ * aclocal.m4, config.h.in, configure, ircd/Makefile.in: Regenerate
+ to reflect the changes since these files' last rebuild.
+
+2004-11-07 Michael Poole <mdpoole@troilus.org>
+
+ * include/ircd_crypt.h (ircd_crypt): This should return char*, not
+ const char*, since it does not own the returned pointer.
+
+ * ircd/ircd_crypt.c (ircd_crypt): Change return type.
+
+ * ircd/ircd_crypt_smd5.c (irc_crypt_smd5): Make passwd a static
+ field since it is returned but this function must own the buffer.
+
+ * ircd/m_oper.c (oper_password_match): Free the string returned by
+ ircd_crypt().
+
+ * ircd/engine_epoll.c (engine_loop): Fix a memory leak.
+
+2004-11-07 Michael Poole <mdpoole@troilus.org>
+
+ * acinclude.m4: Look for a 64-bit integer type.
+
+ * configure.in: Look for inttypes.h, since some systems have that
+ but not stdint.h (and define 64-bit integers therein).
+
+ * include/client.h: Delete con_sendK, con_receiveK. Make
+ con_sendB and con_receiveB 64 bits wide.
+
+ * include/s_misc.h: Delete is_cks, is_ckr, is_sks, is_skr.
+ Convert the other byte counters and the connected time counters to
+ 64 bits wide.
+
+ * ircd/ircd_snprintf.c (doprintf): Unconditionalize the
+ HAVE_LONG_LONG bits, and use the 64-bit integer types from above.
+
+ * ircd/packet.c (update_bytes_received): Remove use of
+ cli_receiveK().
+
+ * ircd/s_bsd.c (deliver_it): Likewise.
+ (close_connection): Likewise.
+
+ * ircd/s_misc.c (tstats): Likewise. Update format strings to use
+ %Lu for 64-bit integer parameters.
+
+ * ircd/s_stats (stats_links): Convert cli_sendK() and
+ cli_receiveK() use shifted versions of the byte counters, and
+ update format strings to use %Lu for 64-bit integer parameters.
+
+2004-11-07 Michael Poole <mdpoole@troilus.org>
+
+ * include/s_user.h (add_silence): Delete.
+ (del_silence): Delete.
+
+ * include/struct.h (struct User): Convert silence list to struct Ban.
+
+ * ircd/m_silence.c (apply_silence, forward_silences): New functions.
+ (m_silence): Use forward_silences() instead of add_silence().
+ (ms_silence): Likewise.
+
+ * ircd/s_err.c (replyTable): Update RPL_SILELIST.
+
+ * ircd/s_misc.c (exit_one_client): Update to new silence list type.
+
+ * ircd/s_user.c (is_silenced): Use find_ban() to search for
+ silences. If one is found, send it plus any silence exceptions.
+ (del_silence): Delete.
+ (add_silence): Delete.
+
+2004-11-07 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.h: Remove declarations for undefined functions
+ cancel_mode(), add_token_to_sendbuf(), IsMember(). Delete
+ add_banid(), next_removed_overlapped_ban(). Add BAN_EXCEPTION
+ flag and new functions find_ban(), apply_ban().
+
+ * ircd/channel.c (PartFmt*, next_ban, prev_ban, removed_bans_list,
+ LocalChanOperMode): Remove unused variable definitions.
+ (make_nick_user_host): Delete.
+ (add_banid): Delete.
+ (next_removed_overlapped_ban): Delete.
+ (find_ban): New function, which knows about exceptions.
+ (is_banned): Use find_ban() and only work on a struct Membership.
+ (bmatch): New function, which knows about CIDR bans.
+ (apply_ban): New function to replace add_banid().
+ (mode_parse_ban): Use apply_ban().
+
+2004-10-28 Michael Poole <mdpoole@troilus.org>
+
+ * configure.in (AC_PREREQ): Depend on autoconf 2.50 since we use
+ new macros like AC_LINK_IFELSE and AC_LANG_PROGRAM.
+
+2004-10-22 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_invite.c (m_invite, ms_invite): Fix INVITE forwarding
+ with announcements enabled (do not "announce" to the recipient,
+ and unconditionally send to the recipient).
+
+ * ircd/send.c (sendcmdto_channel_servers_butone): Properly skip
+ the "from" client and implement SKIP_NONOPS and SKIP_NONVOICES.
+
+2004-10-21 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.h (Ban): Add fields address, nu_len, addrbits to
+ support netmask-based bans.
+
+ * ircd/channel.c (set_ban_mask): New function to parse a ban as
+ either netmask-based or not.
+ (make_ban): Use set_ban_mask().
+ (make_nick_user_ip): Becomes unused; remove it.
+ (is_banned): Rewrite to match only once against the nick!user part
+ of a ban, and compare addresses if BAN_IPMASK is set.
+ (mode_parse_ban): Use set_ban_mask().
+
+2004-10-21 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/s_conf.c (attach_iline): Test resolved host names against
+ aconf->host, not the (NULL) aconf->name.
+
+2004-10-19 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.h: Move ban flags out of channel flags and
+ rename to reflect this.
+
+ * ircd/channel.c: Update ban constant names.
+
+ * ircd/m_burst.c: Likewise.
+
+2004-10-18 Michael Poole <mdpoole@troilus.org>
+
+ * include/list.h (SLink): Remove ban elements from here...
+
+ * include/channel.h (Ban): And move to the new struct Ban.
+ (Channel): Update banlist field to match.
+ (next_removed_overlapped_ban): Update return type to match.
+ (make_ban, free_ban): New functions.
+
+ * ircd/channel.c (next_ban, prev_ban, removed_bans_list): Update
+ list types.
+ (free_bans): New variable to hold unused Ban elements.
+ (make_ban, free_ban): New functions.
+ (destruct_channel, add_banid, next_removed_overlapped_ban): Update
+ to use struct Ban.
+ (is_banned, send_channel_modes, send_ban_list): Likewise.
+ (ParseState, mode_parse_ban, mode_process_bans): Likewise.
+ (mode_parse): Likewise.
+
+ * ircd/m_burst.c (ms_burst): Update to use struct Ban.
+
+ * ircd/m_clearmode.c (do_clearmode): Update to use struct Ban.
+
+ * ircd/s_debug.c (count_memory): Update to use struct Ban.
+
+2004-10-18 Kevin L Mitchell <klmitch@mit.edu>
+
+ * ircd/gline.c (gline_find): unless we're looking for an exact
+ match, we should call match() on hostnames, not ircd_strcmp()
+
+2004-10-17 Michael Poole <mdpoole@troilus.org>
+
+ * include/s_conf.h (ConfItem): Add new field username. Replace
+ unused field bits with addrbits.
+ (find_conf_exact): Replace user and host arguments with cptr.
+ (find_conf_name, read_tlines, find_restrict): Remove declaration
+ for undefined functions.
+ (conf_parse_userhost): New function.
+
+ * ircd/m_oper.c (m_oper): Update calls to find_conf_exact(): both
+ resolved hostname and IP are matched in one pass now.
+
+ * ircd/s_bsd.c (close_connection): Update call to find_conf_exact().
+
+ * ircd/s_conf.c (conf_parse_userhost): New function.
+ (check_limit_and_attach): Use correct ConfItem field to determine
+ maximum connections per IP.
+ (attach_iline): Replace user@host matching with shorter, clearer
+ matching against username and host/IP fields.
+ (find_conf_exact): Likewise.
+
+ * ircd/ircd_parser.y: Replace assignment to aconf->host for
+ CONF_CLIENT and CONF_OPERATOR with calls the CIDR-aware
+ conf_parse_userhost(). This means CONF_CLIENT ConfItems no longer
+ use the name field or the IP token. Remove the latter.
+
+ * ircd/ircd_lexer.l: Remove unused token IP.
+
+2004-10-17 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/crule.c (crule_via): Simplify the lookup for the directly
+ connected server name.
+
+2004-10-16 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/class.c: Make find_class() return NULL for unknown classes,
+ rather than returning the start of connClassList.
+
+ * ircd/match.c (parse_ipmask): Translate IPv4 masks as
+ IPv4-compatible addresses.
+ (check_ipmask): Fix comparison of IP masks.
+
+ * ircd/motd.h, ircd/motd.c: Add a new MOTD type, MOTD_IPMASK, that
+ uses CIDR style masks in the hostname field of a Motd block.
+
+2004-10-16 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/numeric.h: Remove the unused RPL_STATMEM and
+ RPL_STATMEMTOT. Move the RPL_BOUNCE comment to its current
+ value (the former RPL_STATMEM).
+
+ * ircd/s_err.c: Remove format strings for RPL_STATMEM and
+ RPL_STATMEMTOT.
+
+2004-10-16 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_server.c: Look up server configuration by name of our
+ directly connected peer rather than the server being introduced.
+
+2004-10-13 Michael Poole <mdpoole@troilus.org>
+
+ * include/channel.h: Delete MODE_LISTED and is_listed(). Replace
+ ListingArgs.chptr with ListingArgs.bucket. Move declaration of
+ list_next_channels() to..
+
+ * include/hash.h: here, and drop the "nr" argument.
+
+ * ircd/channel.c: Remove redundant scan of local clients for
+ channels being listed. Delete list_next_channels() function.
+
+ * ircd/hash.c: Add list_next_channels() here, revising to not use
+ MODE_LISTED and to use ListingArgs.bucket instead of chptr. Also
+ decide when to stop sending RPL_LISTs based on a half-full sendq.
+
+ * ircd/m_burst.c, ircd/s_misc.c: Delete mention of MODE_LISTED.
+
+ * ircd/m_list.c: Delete mention of MODE_LISTED. Unconditionally
+ call list_next_channels(sptr).
+
+ * ircd/s_bsd.c: Remove the "nr" argument to list_next_channels().
+
+ * ircd/Makefile.in: Update dependencies (for hash.c).
+
+2004-10-13 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/ircd_parser.y: Consistently zero out global variables after
+ they are used (prevents double frees and other problems).
+
+2004-10-12 Michael Poole <mdpoole@troilus.org>
+
+ * include/client.h: Rename FLAGSET_ISSET, _SET, _CLEAR to FlagHas,
+ Set, Clr respectively. Get rid of FLAG_CHKACCESS and FLAG_LOCAL.
+ Delete con_fd (get from con_socket) and con_port. Move sentalong
+ from send.c to struct Connection, and cli_lasttime and cli_since
+ from struct Client to struct Connection. Update cli_*() macros to
+ use con_*(cli_connect(cli)).
+
+ * ircd/client.c: Replace PrivSet() with FlagSet(), PrivClr() with
+ FlagClr(), PrivHas() with FlagHas().
+
+ * ircd/ircd_parser.y: Likewise.
+
+ * ircd/list.c: Remove assignment to cli_local() since it is now a
+ calculated value.
+
+ * ircd/s_bsd.c: Remove uses of cli_port().
+
+ * ircd/s_conf.c: Remove uses of ClearAccess().
+
+ * ircd/send.c: Delete sentalong array and replace with references
+ to con_sentalong().
+
2004-10-12 Michael Poole <mdpoole@troilus.org>
* doc/example.conf: Update example config to reflect the changes