From: pk910 Date: Tue, 28 Jun 2011 19:24:15 +0000 (+0200) Subject: 64bit channel mode fix X-Git-Tag: WGN5~49 X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=commitdiff_plain;h=6177e8285b22cb6277d21a29b165cbda59728b0d 64bit channel mode fix --- diff --git a/ircd/channel.c b/ircd/channel.c index 28c6547..d1511be 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -2340,10 +2340,10 @@ struct ParseState { int parc; char **parv; unsigned int flags; - unsigned int dir; + ulong64 dir; unsigned int done; - unsigned int add; - unsigned int del; + ulong64 add; + ulong64 del; int args_used; int max_args; int numbans; @@ -3133,16 +3133,12 @@ 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]; } } @@ -3676,6 +3672,7 @@ 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);