Add an "exception" flag to struct Ban. (This is not to support ban
[ircu2.10.12-pk.git] / ChangeLog
index e93870bbb059a9c3be53042ad2ae5b47b24972a4..d3dd7a974c4f820051dd7526fc03ab6d2e416372 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,120 @@
+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