summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/modules.conf.example6
-rw-r--r--src/modules/m_showwhois.cpp6
2 files changed, 10 insertions, 2 deletions
diff --git a/conf/modules.conf.example b/conf/modules.conf.example
index 67d17fbfc..4a7e05096 100644
--- a/conf/modules.conf.example
+++ b/conf/modules.conf.example
@@ -1376,7 +1376,11 @@
# users/auspex priv will see real hosts of people, though. This setting
# is not reloadable via /rehash, and will require /reloadmodule, as
# it directly affects the mode object itself.
-#<showwhois opersonly="yes">
+#<showwhois opersonly="yes"
+#
+# You may also set whether or not users should recieve whois notices, should
+# they be /whois'd by an oper.
+# showfromopers="yes">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# Shun module: Provides the /shun command, which stops a user executing
diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp
index fac5d124e..f4b7cec46 100644
--- a/src/modules/m_showwhois.cpp
+++ b/src/modules/m_showwhois.cpp
@@ -47,7 +47,7 @@ class SeeWhois : public ModeHandler
class ModuleShowwhois : public Module
{
-
+ bool ShowWhoisFromOpers;
SeeWhois* sw;
public:
@@ -56,6 +56,7 @@ class ModuleShowwhois : public Module
{
ConfigReader conf(ServerInstance);
bool OpersOnly = conf.ReadFlag("showwhois", "opersonly", 0, true);
+ ShowWhoisFromOpers = conf.ReadFlag("showwhois", "showfromopers", 0, true);
sw = new SeeWhois(ServerInstance, OpersOnly);
if (!ServerInstance->Modes->AddMode(sw))
@@ -79,6 +80,9 @@ class ModuleShowwhois : public Module
{
if ((dest->IsModeSet('W')) && (source != dest))
{
+ if (!ShowWhoisFromOpers && IS_OPER(source))
+ return;
+
std::string wmsg = "*** ";
wmsg += source->nick + "(" + source->ident + "@";