# HG changeset patch # Parent 2e0790d057c43ba2d7baffb90ac98424530e36b0 diff -r 2e0790d057c4 ircd/channel.c --- a/ircd/channel.c Fri Jul 19 21:25:37 2013 +0100 +++ b/ircd/channel.c Fri Jul 19 21:28:53 2013 +0100 @@ -3016,10 +3016,14 @@ count--; len -= banlen; } else { + /* we allow opmode to override both the average? length check + * and the maximum amount of bans + */ if (state->flags & MODE_PARSE_SET && MyUser(state->sptr) && !(state->mbuf->mb_dest & MODEBUF_DEST_OPMODE) && (len > (feature_int(FEAT_AVBANLEN) * feature_int(FEAT_MAXBANS)) || - count > feature_int(FEAT_MAXBANS))) { + count > feature_int(FEAT_MAXBANS)) && + ((state->mbuf == NULL) || !(state->mbuf->mb_dest & MODEBUF_DEST_OPMODE))) { send_reply(state->sptr, ERR_BANLISTFULL, state->chptr->chname, ban->banstr); count--;