+2005-04-22 Michael Poole <mdpoole@troilus.org>
+
+ * RELEASE.NOTES: Silence exceptions use ~, not -. Oops!
+
+ * ircd/channel.c (mode_parse_ban): Use correct test for flag_p.
+
+ * ircd/m_silence.c (apply_silence): Make mask pretty so that later
+ processing does not convert * to @ (and match no one).
+
2005-04-21 Kevin L. Mitchell <klmitch@mit.edu>
* ircd/m_userip.c (userip_formatter): /userip should *never*
Client blocks (previously I: lines), Operator blocks (previously O:
and o: lines), channel bans and silences may use CIDR notation instead
of simple wildcards. You may also have silence exceptions by putting
-'-' before the mask; for example, if you wish to silence everyone
-except X, you could use SILENCE *!*@*,-X!cservice@undernet.org.
+'~' before the mask; for example, if you wish to silence everyone
+except X, you could use SILENCE *!*@*,~X!cservice@undernet.org.
The server will no longer kick "net riders" in keyed (+k) channels if
both sides of the net join have the same key.
newban = state->banlist + (state->numbans++);
newban->next = 0;
newban->flags = ((state->dir == MODE_ADD) ? BAN_ADD : BAN_DEL)
- | (*flag_p == 'b' ? 0 : BAN_EXCEPTION);
+ | (*flag_p == MODE_BAN ? 0 : BAN_EXCEPTION);
newban->banstr = NULL;
set_ban_mask(newban, collapse(pretty_mask(t_str)));
newban->who = cli_name(state->sptr);
* @return The new ban entry on success, NULL on failure.
*/
static struct Ban *
-apply_silence(struct Client *sptr, const char *mask)
+apply_silence(struct Client *sptr, char *mask)
{
struct Ban *sile;
int flags;
}
/* Make the silence, set flags, and apply it. */
- sile = make_ban(mask);
+ sile = make_ban(pretty_mask(mask));
sile->flags |= flags;
return apply_ban(&cli_user(sptr)->silence, sile, 1) ? NULL : sile;
}