X-Git-Url: http://git.pk910.de/?p=ircu2.10.12-pk.git;a=blobdiff_plain;f=ircd%2Fchannel.c;h=c839fa2285c650bcae9ce27e3b082997c96d2e5c;hp=d1511be47ab30321f726109593655e20f5a2b071;hb=7199e72cd97fc5d688a23897c8195b3035e2786f;hpb=6177e8285b22cb6277d21a29b165cbda59728b0d diff --git a/ircd/channel.c b/ircd/channel.c index d1511be..c839fa2 100644 --- a/ircd/channel.c +++ b/ircd/channel.c @@ -2339,9 +2339,9 @@ struct ParseState { struct Membership *member; int parc; char **parv; - unsigned int flags; + ulong64 flags; ulong64 dir; - unsigned int done; + ulong64 done; ulong64 add; ulong64 del; int args_used; @@ -2349,7 +2349,7 @@ struct ParseState { int numbans; struct Ban banlist[MAXPARA]; struct { - unsigned int flag; + ulong64 flag; unsigned short oplevel; struct Client *client; } cli_change[MAXPARA]; @@ -3515,6 +3515,10 @@ mode_process_clients(struct ParseState *state) modebuf_mode_client(state->mbuf, state->cli_change[i].flag, state->cli_change[i].client, state->cli_change[i].oplevel); + + if(MyUser(state->sptr) && (state->chptr->mode.mode & MODE_AUDITORIUM) && (state->cli_change[i].flag & MODE_CHANOP)) { + do_names(state->sptr, state->chptr, NAMES_ALL|NAMES_EON|((member->status & MODE_CHANOP) ? 0 : NAMES_OPS)); + } } /* for (i = 0; state->cli_change[i].flags; i++) */ }