summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-10-23 21:38:58 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-10-23 21:38:58 +0000
commitb928aff22f8f9a458df9aa73a0c6b22b979101bc (patch)
tree54ff8e37c50210d58c1ccc5e6051bf4545aa934e
parent65627cc9d9f3227ea6dc091dd62a71fbce41a5e2 (diff)
Make this un-rehashable due to complications/ugliness involved with keeping it this way (still unusable, please don't use)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10694 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--conf/modules.conf.example4
-rw-r--r--src/modules/m_showwhois.cpp28
2 files changed, 11 insertions, 21 deletions
diff --git a/conf/modules.conf.example b/conf/modules.conf.example
index f739895f2..67d17fbfc 100644
--- a/conf/modules.conf.example
+++ b/conf/modules.conf.example
@@ -1373,7 +1373,9 @@
#<module name="m_showwhois.so">
#
# If you wish, you may also let users set this mode. Only opers with the
-# users/auspex priv will see real hosts of people, though.
+# 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">
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp
index 5d01d5983..fac5d124e 100644
--- a/src/modules/m_showwhois.cpp
+++ b/src/modules/m_showwhois.cpp
@@ -54,10 +54,14 @@ class ModuleShowwhois : public Module
ModuleShowwhois(InspIRCd* Me) : Module(Me)
{
- sw = NULL;
- OnRehash(NULL, "");
- Implementation eventlist[] = { I_OnWhois, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, this, 2);
+ ConfigReader conf(ServerInstance);
+ bool OpersOnly = conf.ReadFlag("showwhois", "opersonly", 0, true);
+
+ sw = new SeeWhois(ServerInstance, OpersOnly);
+ if (!ServerInstance->Modes->AddMode(sw))
+ throw ModuleException("Could not add new modes!");
+ Implementation eventlist[] = { I_OnWhois };
+ ServerInstance->Modules->Attach(eventlist, this, 1);
}
~ModuleShowwhois()
@@ -71,22 +75,6 @@ class ModuleShowwhois : public Module
return Version("$Id$",VF_COMMON|VF_VENDOR,API_VERSION);
}
- virtual void OnRehash(User *user, const std::string &parameter)
- {
- ConfigReader conf(ServerInstance);
- bool OpersOnly = conf.ReadFlag("showwhois", "opersonly", 0, true);
-
- if (sw)
- {
- ServerInstance->Modes->DelMode(sw);
- delete sw;
- }
-
- sw = new SeeWhois(ServerInstance, OpersOnly);
- if (!ServerInstance->Modes->AddMode(sw))
- throw ModuleException("Could not add new modes!");
- }
-
virtual void OnWhois(User* source, User* dest)
{
if ((dest->IsModeSet('W')) && (source != dest))