From 931fd0f059fedf7837cd2cd51e23d4ba460cd3d8 Mon Sep 17 00:00:00 2001 From: pk910 Date: Tue, 28 Jun 2011 21:16:24 +0200 Subject: [PATCH] MODE_AUDITORIUM bugfix --- ircd/channel.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ircd/channel.c b/ircd/channel.c index 714dbd2..28c6547 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -3133,12 +3133,16 @@ static void audit_chan_users(struct ParseState *state, ulong64 *flag_p) { sendcmdto_channel_butserv_butone(member->user, CMD_PART, member->channel, member->user, SKIP_OPS, "%H :%s", member->channel, "mode +u set."); } } + state->add |= flag_p[0]; + state->del &= ~flag_p[0]; } else { for(member = state->chptr->members; member; member = member->next_member) { if(!IsChanOp(member) && !HasVoice(member)) { sendcmdto_channel_butserv_butone(member->user, CMD_JOIN, member->channel, member->user, SKIP_OPS, ":%H", member->channel); } } + state->del |= flag_p[0]; + state->add &= ~flag_p[0]; } } @@ -3672,7 +3676,6 @@ mode_parse(struct ModeBuf *mbuf, struct Client *cptr, struct Client *sptr, break; case 'u': /* deal with not oped members */ audit_chan_users(&state, flag_p); - mode_parse_mode(&state, flag_p); break; case 'a': /* deal with limits */ mode_parse_access(&state, flag_p); -- 2.20.1