git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1790
c9e4aea6-c8fd-4c43-8297-
357d70d61c8c
+2007-03-26 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_silence.c (forward_silences): Do not try twice to process
+ silences that were both added and deleted.
+
2007-03-26 Michael Poole <mdpoole@troilus.org>
* ircd/ircd_parser.y (portblock): Restore old behavior for Port
2007-03-26 Michael Poole <mdpoole@troilus.org>
* ircd/ircd_parser.y (portblock): Restore old behavior for Port
{
struct Ban *sile;
int flags;
{
struct Ban *sile;
int flags;
char orig_mask[NICKLEN+USERLEN+HOSTLEN+3];
assert(mask && mask[0]);
char orig_mask[NICKLEN+USERLEN+HOSTLEN+3];
assert(mask && mask[0]);
}
/* Apply it to the silence list. */
}
/* Apply it to the silence list. */
- return apply_ban(&cli_user(sptr)->silence, sile, 1) ? NULL : sile;
+ res = apply_ban(&cli_user(sptr)->silence, sile, 1);
+ return res ? NULL : sile;
}
/** Apply and send silence updates for a user.
}
/** Apply and send silence updates for a user.
accepted[ac_count++] = sile;
}
accepted[ac_count++] = sile;
}
if (MyUser(sptr)) {
size_t siles, maxsiles, totlength, maxlength, jj;
if (MyUser(sptr)) {
size_t siles, maxsiles, totlength, maxlength, jj;
/* Free any silence-deleting updates. */
for (ii = 0; ii < ac_count; ++ii) {
/* Free any silence-deleting updates. */
for (ii = 0; ii < ac_count; ++ii) {
- if (accepted[ii]->flags & BAN_DEL)
+ if ((accepted[ii]->flags & (BAN_ADD | BAN_DEL)) == BAN_DEL) {