X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fwhois.cpp;h=27b07c9444b0b65ae771782097ac1f32e09339c6;hb=061a762095e983d07382f61cd69611a082792668;hp=8f85d86cce7e60883c2a58022122a78212ab9fbd;hpb=cd712c40e1b352c05e7ae0f72e0a5e84cdf64323;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/whois.cpp b/src/whois.cpp index 8f85d86cc..27b07c944 100644 --- a/src/whois.cpp +++ b/src/whois.cpp @@ -22,15 +22,19 @@ void InspIRCd::DoWhois(User* user, User* dest,unsigned long signon, unsigned lon } std::string cl = dest->ChannelList(user, false); + const ServerConfig::OperSpyWhoisState state = user->HasPrivPermission("users/auspex") ? ServerInstance->Config->OperSpyWhois : ServerConfig::SPYWHOIS_NONE; - if (cl.length()) - user->SplitChanList(dest,cl); - if (IS_OPER(user) && ServerInstance->Config->OperSpyWhois) + if (state == ServerConfig::SPYWHOIS_SINGLEMSG) + cl.append(dest->ChannelList(user, true)); + + user->SplitChanList(dest,cl); + + if (state == ServerConfig::SPYWHOIS_SPLITMSG) { std::string scl = dest->ChannelList(user, true); if (scl.length()) { - this->SendWhoisLine(user, dest, 336, "%s %s :is on private/secret channels:",user->nick.c_str(), dest->nick.c_str()); + SendWhoisLine(user, dest, 336, "%s %s :is on private/secret channels:",user->nick.c_str(), dest->nick.c_str()); user->SplitChanList(dest,scl); } }