summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackmcbarn <jackmcbarn@jackmcbarn.no-ip.org>2010-12-23 14:50:11 -0500
committerJackmcbarn <jackmcbarn@jackmcbarn.no-ip.org>2010-12-23 14:50:11 -0500
commit0afcb5ce884359d7b9dded7b7ff47b262a7a5335 (patch)
tree51e7f45970188b52cacccef401dbe910e6d20172
parent465ddddb343938cc0e683f77cd1697f9db0d5ae3 (diff)
Fix bug #113
-rw-r--r--include/configreader.h2
-rw-r--r--src/configreader.cpp2
-rw-r--r--src/whois.cpp13
3 files changed, 12 insertions, 5 deletions
diff --git a/include/configreader.h b/include/configreader.h
index d2f5d2610..8748e57f9 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -216,7 +216,7 @@ class CoreExport ServerConfig
/** Used to indicate who we announce invites to on a channel */
enum InviteAnnounceState { INVITE_ANNOUNCE_NONE, INVITE_ANNOUNCE_ALL, INVITE_ANNOUNCE_OPS, INVITE_ANNOUNCE_DYNAMIC };
- enum OperSpyWhoisState { SPYWHOIS_NONE, SPYWHOIS_NEWLINE, SPYWHOIS_SPLITMSG };
+ enum OperSpyWhoisState { SPYWHOIS_NONE, SPYWHOIS_SINGLEMSG, SPYWHOIS_SPLITMSG };
/** This holds all the information in the config file,
* it's indexed by tag name to a vector of key/values.
diff --git a/src/configreader.cpp b/src/configreader.cpp
index d6b479874..6435d43bd 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -591,7 +591,7 @@ void ServerConfig::Fill()
if (v == "splitmsg")
OperSpyWhois = SPYWHOIS_SPLITMSG;
else if (v == "on" || v == "yes")
- OperSpyWhois = SPYWHOIS_NEWLINE;
+ OperSpyWhois = SPYWHOIS_SINGLEMSG;
else
OperSpyWhois = SPYWHOIS_NONE;
diff --git a/src/whois.cpp b/src/whois.cpp
index 4aa5e4726..27b07c944 100644
--- a/src/whois.cpp
+++ b/src/whois.cpp
@@ -22,14 +22,21 @@ 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 (state == ServerConfig::SPYWHOIS_SINGLEMSG)
+ cl.append(dest->ChannelList(user, true));
user->SplitChanList(dest,cl);
- if (user->HasPrivPermission("users/auspex") && ServerInstance->Config->OperSpyWhois != ServerConfig::SPYWHOIS_NONE)
+
+ if (state == ServerConfig::SPYWHOIS_SPLITMSG)
{
std::string scl = dest->ChannelList(user, true);
- if (scl.length() && ServerInstance->Config->OperSpyWhois == ServerConfig::SPYWHOIS_SPLITMSG)
+ if (scl.length())
+ {
SendWhoisLine(user, dest, 336, "%s %s :is on private/secret channels:",user->nick.c_str(), dest->nick.c_str());
- user->SplitChanList(dest,scl);
+ user->SplitChanList(dest,scl);
+ }
}
if (user != dest && !this->Config->HideWhoisServer.empty() && !user->HasPrivPermission("servers/auspex"))
{