X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fm_whois.c;h=343ca82d7af9414ed91bcaa8574367e693e4b2bb;hb=a467564f2feb051dbabb4ce142eb8f420353bee7;hp=5660ba66e344445fd786dd921d9d99111f816691;hpb=4eb71fdb80b33555029bc910402b701aed3e776b;p=ircu2.10.12-pk.git diff --git a/ircd/m_whois.c b/ircd/m_whois.c index 5660ba6..343ca82 100644 --- a/ircd/m_whois.c +++ b/ircd/m_whois.c @@ -155,11 +155,18 @@ static void do_whois(struct Client* sptr, struct Client *acptr, int parc) if (!ShowChannel(sptr, chptr) && !(IsOper(sptr) && IsLocalChannel(chptr->chname))) continue; - + if (acptr != sptr && IsZombie(chan)) continue; - - if (len+strlen(chptr->chname) + mlen > BUFSIZE - 5) + + /* Don't show local channels when HIS is defined, unless it's a + * remote WHOIS --ULtimaTe_ + */ + if (IsLocalChannel(chptr->chname) && (acptr != sptr) && (parc == 2) + && feature_bool(FEAT_HIS_WHOIS_LOCALCHAN) && !IsAnOper(sptr)) + continue; + + if (len+strlen(chptr->chname) + mlen > BUFSIZE - 5) { send_reply(sptr, SND_EXPLICIT | RPL_WHOISCHANNELS, "%s :%s", name, buf); *buf = '\0';