X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_join.c;h=89ef8c7f918e33f88a4e8535d2ec551a7e982561;hb=2408eeb1527f43b1214bd80eccd76e7fc9959432;hp=6a93769cc55de697d612fd52ba7f92a0c1b18575;hpb=e2afd9be76c9db64ad2eedf1c456e0b50627a97a;p=ircu2.10.12-pk.git diff --git a/ircd/m_join.c b/ircd/m_join.c index 6a93769..89ef8c7 100644 --- a/ircd/m_join.c +++ b/ircd/m_join.c @@ -157,7 +157,9 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) send_reply(sptr, ERR_TOOMANYCHANNELS, name); break; /* no point processing the other channels */ } - + + int flags = 0; + /* BADCHANed channel */ if ((gline = gline_find(name, GLINE_BADCHAN)) && GlineIsActive(gline) && !IsAnOper(sptr)) { @@ -192,7 +194,7 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) } else if (check_target_limit(sptr, chptr, chptr->chname, 0)) { continue; } else { - int flags = CHFL_DEOPPED; + flags = CHFL_DEOPPED; int err = 0; int override = 0; @@ -354,7 +356,7 @@ int m_join(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) chptr->topic_time); } - do_names(sptr, chptr, NAMES_ALL|NAMES_EON); /* send /names list */ + do_names(sptr, chptr, NAMES_ALL|NAMES_EON|(((chptr->mode.mode & MODE_AUDITORIUM) && !(flags & CHFL_CHANOP)) ? NAMES_OPS : 0)); /* send /names list */ } joinbuf_flush(&join); /* must be first, if there's a JOIN 0 */