}
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);
}
}