summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorattilamolnar <attilamolnar@hush.com>2013-08-16 12:10:55 +0200
committerattilamolnar <attilamolnar@hush.com>2013-08-30 13:15:10 +0200
commitc202dea024542b9c6c6b771bb9a3a081d9eacdc5 (patch)
tree64f4d5f5c18e685d3cd360107664eec644d5585d /src
parent1031f333332cf1b09db4fd632f141143ee637c34 (diff)
Replace OnRehash() with ReadConfig() that is called on boot, on module load and on rehash
This eliminates the need for calling OnRehash() in init()
Diffstat (limited to 'src')
-rw-r--r--src/commands/cmd_dns.cpp4
-rw-r--r--src/commands/cmd_whowas.cpp3
-rw-r--r--src/configreader.cpp7
-rw-r--r--src/listmode.cpp1
-rw-r--r--src/modmanager_dynamic.cpp6
-rw-r--r--src/modmanager_static.cpp6
-rw-r--r--src/modules.cpp2
-rw-r--r--src/modules/extra/m_ldapauth.cpp3
-rw-r--r--src/modules/extra/m_ldapoper.cpp7
-rw-r--r--src/modules/extra/m_mssql.cpp2
-rw-r--r--src/modules/extra/m_mysql.cpp6
-rw-r--r--src/modules/extra/m_pgsql.cpp7
-rw-r--r--src/modules/extra/m_regex_posix.cpp3
-rw-r--r--src/modules/extra/m_regex_stdlib.cpp3
-rw-r--r--src/modules/extra/m_sqlite3.cpp12
-rw-r--r--src/modules/extra/m_ssl_gnutls.cpp3
-rw-r--r--src/modules/extra/m_ssl_openssl.cpp3
-rw-r--r--src/modules/m_alias.cpp14
-rw-r--r--src/modules/m_auditorium.cpp4
-rw-r--r--src/modules/m_autoop.cpp2
-rw-r--r--src/modules/m_banexception.cpp2
-rw-r--r--src/modules/m_blockamsg.cpp3
-rw-r--r--src/modules/m_blockcaps.cpp8
-rw-r--r--src/modules/m_callerid.cpp4
-rw-r--r--src/modules/m_censor.cpp5
-rw-r--r--src/modules/m_cgiirc.cpp3
-rw-r--r--src/modules/m_chanfilter.cpp4
-rw-r--r--src/modules/m_chanhistory.cpp4
-rw-r--r--src/modules/m_chanlog.cpp7
-rw-r--r--src/modules/m_channames.cpp3
-rw-r--r--src/modules/m_chghost.cpp3
-rw-r--r--src/modules/m_cloaking.cpp4
-rw-r--r--src/modules/m_conn_waitpong.cpp3
-rw-r--r--src/modules/m_connectban.cpp7
-rw-r--r--src/modules/m_connflood.cpp13
-rw-r--r--src/modules/m_dccallow.cpp8
-rw-r--r--src/modules/m_deaf.cpp4
-rw-r--r--src/modules/m_denychans.cpp10
-rw-r--r--src/modules/m_dnsbl.cpp8
-rw-r--r--src/modules/m_exemptchanops.cpp4
-rw-r--r--src/modules/m_filter.cpp5
-rw-r--r--src/modules/m_helpop.cpp8
-rw-r--r--src/modules/m_hidechans.cpp3
-rw-r--r--src/modules/m_hostchange.cpp7
-rw-r--r--src/modules/m_httpd_acl.cpp7
-rw-r--r--src/modules/m_ident.cpp3
-rw-r--r--src/modules/m_inviteexception.cpp4
-rw-r--r--src/modules/m_ircv3.cpp7
-rw-r--r--src/modules/m_jumpserver.cpp5
-rw-r--r--src/modules/m_knock.cpp4
-rw-r--r--src/modules/m_lockserv.cpp5
-rw-r--r--src/modules/m_maphide.cpp7
-rw-r--r--src/modules/m_nationalchars.cpp4
-rw-r--r--src/modules/m_nonicks.cpp3
-rw-r--r--src/modules/m_ojoin.cpp5
-rw-r--r--src/modules/m_operjoin.cpp8
-rw-r--r--src/modules/m_operlog.cpp3
-rw-r--r--src/modules/m_opermotd.cpp3
-rw-r--r--src/modules/m_override.cpp6
-rw-r--r--src/modules/m_passforward.cpp7
-rw-r--r--src/modules/m_password_hash.cpp3
-rw-r--r--src/modules/m_permchannels.cpp4
-rw-r--r--src/modules/m_remove.cpp3
-rw-r--r--src/modules/m_repeat.cpp3
-rw-r--r--src/modules/m_restrictchans.cpp14
-rw-r--r--src/modules/m_rline.cpp4
-rw-r--r--src/modules/m_sasl.cpp4
-rw-r--r--src/modules/m_securelist.cpp7
-rw-r--r--src/modules/m_sethost.cpp3
-rw-r--r--src/modules/m_shun.cpp4
-rw-r--r--src/modules/m_silence.cpp3
-rw-r--r--src/modules/m_spanningtree/main.cpp4
-rw-r--r--src/modules/m_spanningtree/main.h2
-rw-r--r--src/modules/m_spanningtree/utils.cpp2
-rw-r--r--src/modules/m_sqlauth.cpp3
-rw-r--r--src/modules/m_sqloper.cpp7
-rw-r--r--src/modules/m_watch.cpp3
-rw-r--r--src/modules/m_xline_db.cpp2
78 files changed, 104 insertions, 280 deletions
diff --git a/src/commands/cmd_dns.cpp b/src/commands/cmd_dns.cpp
index 2b7114128..f97d68783 100644
--- a/src/commands/cmd_dns.cpp
+++ b/src/commands/cmd_dns.cpp
@@ -798,11 +798,9 @@ class ModuleDNS : public Module
void init()
{
ServerInstance->Modules->AddService(this->manager);
-
- this->OnRehash(NULL);
}
- void OnRehash(User* user)
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
std::string oldserver = DNSServer;
DNSServer = ServerInstance->Config->ConfValue("dns")->getString("server");
diff --git a/src/commands/cmd_whowas.cpp b/src/commands/cmd_whowas.cpp
index 75d1ee8ff..ea1020fbc 100644
--- a/src/commands/cmd_whowas.cpp
+++ b/src/commands/cmd_whowas.cpp
@@ -231,7 +231,6 @@ class ModuleWhoWas : public Module
void init()
{
ServerInstance->Modules->AddService(cmd);
- OnRehash(NULL);
}
void OnGarbageCollect()
@@ -253,7 +252,7 @@ class ModuleWhoWas : public Module
return MOD_RES_PASSTHRU;
}
- void OnRehash(User* user)
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("whowas");
unsigned int NewGroupSize = tag->getInt("groupsize", 10, 0, 10000);
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 957adc829..a08047678 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -837,7 +837,12 @@ void ConfigReaderThread::Finish()
static_cast<ListModeBase*>(*ban)->DoRehash();
Config->ApplyDisabledCommands(Config->DisabledCommands);
User* user = ServerInstance->FindNick(TheUserUID);
- FOREACH_MOD(OnRehash, (user));
+
+ ConfigStatus status(user);
+ const ModuleManager::ModuleMap& mods = ServerInstance->Modules->GetModules();
+ for (ModuleManager::ModuleMap::const_iterator i = mods.begin(); i != mods.end(); ++i)
+ i->second->ReadConfig(status);
+
ServerInstance->ISupport.Build();
ServerInstance->Logs->CloseLogs();
diff --git a/src/listmode.cpp b/src/listmode.cpp
index fb76beab2..a377f19e3 100644
--- a/src/listmode.cpp
+++ b/src/listmode.cpp
@@ -92,7 +92,6 @@ void ListModeBase::DoRehash()
void ListModeBase::DoImplements(Module* m)
{
ServerInstance->Modules->AddService(extItem);
- this->DoRehash();
}
unsigned int ListModeBase::FindLimit(const std::string& channame)
diff --git a/src/modmanager_dynamic.cpp b/src/modmanager_dynamic.cpp
index 750a1c448..64d2bf69c 100644
--- a/src/modmanager_dynamic.cpp
+++ b/src/modmanager_dynamic.cpp
@@ -74,8 +74,11 @@ bool ModuleManager::Load(const std::string& filename, bool defer)
}
else
{
+ ConfigStatus confstatus;
+
AttachAll(newmod);
newmod->init();
+ newmod->ReadConfig(confstatus);
Version v = newmod->GetVersion();
ServerInstance->Logs->Log("MODULE", LOG_DEFAULT, "New module introduced: %s (Module version %s)%s",
@@ -228,6 +231,8 @@ void ModuleManager::LoadAll()
}
}
+ ConfigStatus confstatus;
+
for(std::map<std::string, Module*>::iterator i = Modules.begin(); i != Modules.end(); i++)
{
Module* mod = i->second;
@@ -236,6 +241,7 @@ void ModuleManager::LoadAll()
ServerInstance->Logs->Log("MODULE", LOG_DEBUG, "Initializing %s", i->first.c_str());
AttachAll(mod);
mod->init();
+ mod->ReadConfig(confstatus);
}
catch (CoreException& modexcept)
{
diff --git a/src/modmanager_static.cpp b/src/modmanager_static.cpp
index 321bf520d..eeb8b6f96 100644
--- a/src/modmanager_static.cpp
+++ b/src/modmanager_static.cpp
@@ -102,8 +102,11 @@ bool ModuleManager::Load(const std::string& name, bool defer)
}
else
{
+ ConfigStatus confstatus;
+
AttachAll(mod);
mod->init();
+ mod->ReadConfig(confstatus);
}
}
catch (CoreException& modexcept)
@@ -203,6 +206,8 @@ void ModuleManager::LoadAll()
}
}
+ ConfigStatus confstatus;
+
for(std::map<std::string, Module*>::iterator i = Modules.begin(); i != Modules.end(); i++)
{
Module* mod = i->second;
@@ -210,6 +215,7 @@ void ModuleManager::LoadAll()
{
AttachAll(mod);
mod->init();
+ mod->ReadConfig(confstatus);
}
catch (CoreException& modexcept)
{
diff --git a/src/modules.cpp b/src/modules.cpp
index 47c994088..d581b76a5 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -81,6 +81,7 @@ void Module::DetachEvent(Implementation i)
ServerInstance->Modules->Detach(i, this);
}
+void Module::ReadConfig(ConfigStatus& status) { }
ModResult Module::OnSendSnotice(char &snomask, std::string &type, const std::string &message) { DetachEvent(I_OnSendSnotice); return MOD_RES_PASSTHRU; }
void Module::OnUserConnect(LocalUser*) { DetachEvent(I_OnUserConnect); }
void Module::OnUserQuit(User*, const std::string&, const std::string&) { DetachEvent(I_OnUserQuit); }
@@ -90,7 +91,6 @@ void Module::OnPostJoin(Membership*) { DetachEvent(I_OnPostJoin); }
void Module::OnUserPart(Membership*, std::string&, CUList&) { DetachEvent(I_OnUserPart); }
void Module::OnPreRehash(User*, const std::string&) { DetachEvent(I_OnPreRehash); }
void Module::OnModuleRehash(User*, const std::string&) { DetachEvent(I_OnModuleRehash); }
-void Module::OnRehash(User*) { DetachEvent(I_OnRehash); }
ModResult Module::OnUserPreJoin(LocalUser*, Channel*, const std::string&, std::string&, const std::string&) { DetachEvent(I_OnUserPreJoin); return MOD_RES_PASSTHRU; }
void Module::OnMode(User*, User*, Channel*, const std::vector<std::string>&, const std::vector<TranslateType>&) { DetachEvent(I_OnMode); }
void Module::OnOper(User*, const std::string&) { DetachEvent(I_OnOper); }
diff --git a/src/modules/extra/m_ldapauth.cpp b/src/modules/extra/m_ldapauth.cpp
index 517a6d395..827179f84 100644
--- a/src/modules/extra/m_ldapauth.cpp
+++ b/src/modules/extra/m_ldapauth.cpp
@@ -122,7 +122,6 @@ public:
{
ServerInstance->Modules->AddService(ldapAuthed);
ServerInstance->Modules->AddService(ldapVhost);
- OnRehash(NULL);
}
~ModuleLDAPAuth()
@@ -131,7 +130,7 @@ public:
ldap_unbind_ext(conn, NULL, NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("ldapauth");
whitelistedcidrs.clear();
diff --git a/src/modules/extra/m_ldapoper.cpp b/src/modules/extra/m_ldapoper.cpp
index af7b48d07..67ba9a7e5 100644
--- a/src/modules/extra/m_ldapoper.cpp
+++ b/src/modules/extra/m_ldapoper.cpp
@@ -97,18 +97,13 @@ public:
{
}
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
~ModuleLDAPAuth()
{
if (conn)
ldap_unbind_ext(conn, NULL, NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("ldapoper");
diff --git a/src/modules/extra/m_mssql.cpp b/src/modules/extra/m_mssql.cpp
index e6bac038c..84e02be98 100644
--- a/src/modules/extra/m_mssql.cpp
+++ b/src/modules/extra/m_mssql.cpp
@@ -779,7 +779,7 @@ class ModuleMsSQL : public Module
connections.clear();
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
queryDispatcher->LockQueue();
ReadConf();
diff --git a/src/modules/extra/m_mysql.cpp b/src/modules/extra/m_mysql.cpp
index 2d20a82ab..3aed09416 100644
--- a/src/modules/extra/m_mysql.cpp
+++ b/src/modules/extra/m_mysql.cpp
@@ -108,7 +108,7 @@ class ModuleSQL : public Module
ModuleSQL();
void init() CXX11_OVERRIDE;
~ModuleSQL();
- void OnRehash(User* user) CXX11_OVERRIDE;
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE;
void OnUnloadModule(Module* mod) CXX11_OVERRIDE;
Version GetVersion() CXX11_OVERRIDE;
};
@@ -381,8 +381,6 @@ void ModuleSQL::init()
{
Dispatcher = new DispatcherThread(this);
ServerInstance->Threads->Start(Dispatcher);
-
- OnRehash(NULL);
}
ModuleSQL::~ModuleSQL()
@@ -399,7 +397,7 @@ ModuleSQL::~ModuleSQL()
}
}
-void ModuleSQL::OnRehash(User* user)
+void ModuleSQL::ReadConfig(ConfigStatus& status)
{
ConnMap conns;
ConfigTagList tags = ServerInstance->Config->ConfTags("database");
diff --git a/src/modules/extra/m_pgsql.cpp b/src/modules/extra/m_pgsql.cpp
index 2300c9d5b..1ed5be6f0 100644
--- a/src/modules/extra/m_pgsql.cpp
+++ b/src/modules/extra/m_pgsql.cpp
@@ -508,18 +508,13 @@ class ModulePgSQL : public Module
{
}
- void init() CXX11_OVERRIDE
- {
- ReadConf();
- }
-
~ModulePgSQL()
{
delete retimer;
ClearAllConnections();
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ReadConf();
}
diff --git a/src/modules/extra/m_regex_posix.cpp b/src/modules/extra/m_regex_posix.cpp
index 935cdbf92..bde5c3947 100644
--- a/src/modules/extra/m_regex_posix.cpp
+++ b/src/modules/extra/m_regex_posix.cpp
@@ -79,7 +79,6 @@ class ModuleRegexPOSIX : public Module
ModuleRegexPOSIX() : ref(this)
{
ServerInstance->Modules->AddService(ref);
- OnRehash(NULL);
}
Version GetVersion() CXX11_OVERRIDE
@@ -87,7 +86,7 @@ class ModuleRegexPOSIX : public Module
return Version("Regex Provider Module for POSIX Regular Expressions", VF_VENDOR);
}
- void OnRehash(User* u) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ref.extended = ServerInstance->Config->ConfValue("posix")->getBool("extended");
}
diff --git a/src/modules/extra/m_regex_stdlib.cpp b/src/modules/extra/m_regex_stdlib.cpp
index 5ec358d58..2f75a60a8 100644
--- a/src/modules/extra/m_regex_stdlib.cpp
+++ b/src/modules/extra/m_regex_stdlib.cpp
@@ -62,7 +62,6 @@ public:
ModuleRegexStd() : ref(this)
{
ServerInstance->Modules->AddService(ref);
- OnRehash(NULL);
}
Version GetVersion() CXX11_OVERRIDE
@@ -70,7 +69,7 @@ public:
return Version("Regex Provider Module for std::regex", VF_VENDOR);
}
- void OnRehash(User* u) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* Conf = ServerInstance->Config->ConfValue("stdregex");
std::string regextype = Conf->getString("type", "ecmascript");
diff --git a/src/modules/extra/m_sqlite3.cpp b/src/modules/extra/m_sqlite3.cpp
index 54a2788eb..1c213e8e0 100644
--- a/src/modules/extra/m_sqlite3.cpp
+++ b/src/modules/extra/m_sqlite3.cpp
@@ -202,11 +202,6 @@ class ModuleSQLite3 : public Module
ConnMap conns;
public:
- void init() CXX11_OVERRIDE
- {
- ReadConf();
- }
-
~ModuleSQLite3()
{
ClearConns();
@@ -223,7 +218,7 @@ class ModuleSQLite3 : public Module
conns.clear();
}
- void ReadConf()
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ClearConns();
ConfigTagList tags = ServerInstance->Config->ConfTags("database");
@@ -237,11 +232,6 @@ class ModuleSQLite3 : public Module
}
}
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- ReadConf();
- }
-
Version GetVersion() CXX11_OVERRIDE
{
return Version("sqlite3 provider", VF_VENDOR);
diff --git a/src/modules/extra/m_ssl_gnutls.cpp b/src/modules/extra/m_ssl_gnutls.cpp
index 53fc38ec0..9f21d6d28 100644
--- a/src/modules/extra/m_ssl_gnutls.cpp
+++ b/src/modules/extra/m_ssl_gnutls.cpp
@@ -638,7 +638,7 @@ class ModuleSSLGnuTLS : public Module
ServerInstance->Modules->AddService(starttls);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
sslports.clear();
@@ -687,7 +687,6 @@ class ModuleSSLGnuTLS : public Module
std::string certfile;
std::string cafile;
std::string crlfile;
- OnRehash(user);
ConfigTag* Conf = ServerInstance->Config->ConfValue("gnutls");
diff --git a/src/modules/extra/m_ssl_openssl.cpp b/src/modules/extra/m_ssl_openssl.cpp
index 29c3568ef..0957b5912 100644
--- a/src/modules/extra/m_ssl_openssl.cpp
+++ b/src/modules/extra/m_ssl_openssl.cpp
@@ -502,7 +502,7 @@ class ModuleSSLOpenSSL : public Module
}
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
sslports.clear();
@@ -550,7 +550,6 @@ class ModuleSSLOpenSSL : public Module
std::string certfile;
std::string cafile;
std::string dhfile;
- OnRehash(user);
ConfigTag* conf = ServerInstance->Config->ConfValue("openssl");
diff --git a/src/modules/m_alias.cpp b/src/modules/m_alias.cpp
index 4d942854c..7d2eabd15 100644
--- a/src/modules/m_alias.cpp
+++ b/src/modules/m_alias.cpp
@@ -69,7 +69,8 @@ class ModuleAlias : public Module
bool AllowBots;
UserModeReference botmode;
- void ReadAliases()
+ public:
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* fantasy = ServerInstance->Config->ConfValue("fantasy");
AllowBots = fantasy->getBool("allowbots", false);
@@ -96,17 +97,11 @@ class ModuleAlias : public Module
}
}
- public:
ModuleAlias()
: botmode(this, "bot")
{
}
- void init() CXX11_OVERRIDE
- {
- ReadAliases();
- }
-
Version GetVersion() CXX11_OVERRIDE
{
return Version("Provides aliases of commands.", VF_VENDOR);
@@ -369,11 +364,6 @@ class ModuleAlias : public Module
ServerInstance->Parser->CallHandler(command, pars, user);
}
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- ReadAliases();
- }
-
void Prioritize()
{
// Prioritise after spanningtree so that channel aliases show the alias before the effects.
diff --git a/src/modules/m_auditorium.cpp b/src/modules/m_auditorium.cpp
index af828c130..00227c66e 100644
--- a/src/modules/m_auditorium.cpp
+++ b/src/modules/m_auditorium.cpp
@@ -54,11 +54,9 @@ class ModuleAuditorium : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(aum);
-
- OnRehash(NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("auditorium");
OpsVisible = tag->getBool("opvisible");
diff --git a/src/modules/m_autoop.cpp b/src/modules/m_autoop.cpp
index 6bc5f464c..32e097188 100644
--- a/src/modules/m_autoop.cpp
+++ b/src/modules/m_autoop.cpp
@@ -127,7 +127,7 @@ class ModuleAutoOp : public Module
mh.DoSyncChannel(chan, proto, opaque);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
mh.DoRehash();
}
diff --git a/src/modules/m_banexception.cpp b/src/modules/m_banexception.cpp
index e142af0de..ad4244945 100644
--- a/src/modules/m_banexception.cpp
+++ b/src/modules/m_banexception.cpp
@@ -117,7 +117,7 @@ class ModuleBanException : public Module
be.DoSyncChannel(chan, proto, opaque);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
be.DoRehash();
}
diff --git a/src/modules/m_blockamsg.cpp b/src/modules/m_blockamsg.cpp
index b71247d71..963f94fc2 100644
--- a/src/modules/m_blockamsg.cpp
+++ b/src/modules/m_blockamsg.cpp
@@ -59,7 +59,6 @@ class ModuleBlockAmsg : public Module
void init() CXX11_OVERRIDE
{
- this->OnRehash(NULL);
ServerInstance->Modules->AddService(blockamsg);
}
@@ -68,7 +67,7 @@ class ModuleBlockAmsg : public Module
return Version("Attempt to block /amsg, at least some of the irritating mIRC scripts.",VF_VENDOR);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("blockamsg");
ForgetDelay = tag->getInt("delay", -1);
diff --git a/src/modules/m_blockcaps.cpp b/src/modules/m_blockcaps.cpp
index f80c6d16d..c3c8b2297 100644
--- a/src/modules/m_blockcaps.cpp
+++ b/src/modules/m_blockcaps.cpp
@@ -45,7 +45,6 @@ public:
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
ServerInstance->Modules->AddService(bc);
}
@@ -54,11 +53,6 @@ public:
tokens["EXTBAN"].push_back('B');
}
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- ReadConf();
- }
-
ModResult OnUserPreMessage(User* user, void* dest, int target_type, std::string& text, char status, CUList& exempt_list, MessageType msgtype) CXX11_OVERRIDE
{
if (target_type == TYPE_CHANNEL)
@@ -101,7 +95,7 @@ public:
return MOD_RES_PASSTHRU;
}
- void ReadConf()
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("blockcaps");
percent = tag->getInt("percent", 100, 1, 100);
diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp
index 3d2394fb1..de74773ad 100644
--- a/src/modules/m_callerid.cpp
+++ b/src/modules/m_callerid.cpp
@@ -363,8 +363,6 @@ public:
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
-
ServerInstance->Modules->AddService(myumode);
ServerInstance->Modules->AddService(cmd);
ServerInstance->Modules->AddService(cmd.extInfo);
@@ -427,7 +425,7 @@ public:
RemoveFromAllAccepts(user);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("callerid");
cmd.maxaccepts = tag->getInt("maxaccepts", 16);
diff --git a/src/modules/m_censor.cpp b/src/modules/m_censor.cpp
index 747c16d83..fe0321ab1 100644
--- a/src/modules/m_censor.cpp
+++ b/src/modules/m_censor.cpp
@@ -55,9 +55,6 @@ class ModuleCensor : public Module
void init() CXX11_OVERRIDE
{
- /* Read the configuration file on startup.
- */
- OnRehash(NULL);
ServerInstance->Modules->AddService(cu);
ServerInstance->Modules->AddService(cc);
}
@@ -103,7 +100,7 @@ class ModuleCensor : public Module
return MOD_RES_PASSTHRU;
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
/*
* reload our config file on rehash - we must destroy and re-allocate the classes
diff --git a/src/modules/m_cgiirc.cpp b/src/modules/m_cgiirc.cpp
index 2352fa217..9fbc77850 100644
--- a/src/modules/m_cgiirc.cpp
+++ b/src/modules/m_cgiirc.cpp
@@ -236,12 +236,11 @@ public:
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
ServiceProvider* providerlist[] = { &cmd, &cmd.realhost, &cmd.realip, &cmd.webirc_hostname, &cmd.webirc_ip, &waiting };
ServerInstance->Modules->AddServices(providerlist, sizeof(providerlist)/sizeof(ServiceProvider*));
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
cmd.Hosts.clear();
diff --git a/src/modules/m_chanfilter.cpp b/src/modules/m_chanfilter.cpp
index 38ee14e60..3a7ad9057 100644
--- a/src/modules/m_chanfilter.cpp
+++ b/src/modules/m_chanfilter.cpp
@@ -80,11 +80,9 @@ class ModuleChanFilter : public Module
ServerInstance->Modules->AddService(cf);
cf.DoImplements(this);
-
- OnRehash(NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
hidemask = ServerInstance->Config->ConfValue("chanfilter")->getBool("hidemask");
cf.DoRehash();
diff --git a/src/modules/m_chanhistory.cpp b/src/modules/m_chanhistory.cpp
index f1f9ed614..0e0841f67 100644
--- a/src/modules/m_chanhistory.cpp
+++ b/src/modules/m_chanhistory.cpp
@@ -118,11 +118,9 @@ class ModuleChanHistory : public Module
{
ServerInstance->Modules->AddService(m);
ServerInstance->Modules->AddService(m.ext);
-
- OnRehash(NULL);
}
- void OnRehash(User*) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("chanhistory");
m.maxlines = tag->getInt("maxlines", 50);
diff --git a/src/modules/m_chanlog.cpp b/src/modules/m_chanlog.cpp
index dc5750ba6..736285be8 100644
--- a/src/modules/m_chanlog.cpp
+++ b/src/modules/m_chanlog.cpp
@@ -29,12 +29,7 @@ class ModuleChanLog : public Module
ChanLogTargets logstreams;
public:
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
- void OnRehash(User *user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
std::string snomasks;
std::string channel;
diff --git a/src/modules/m_channames.cpp b/src/modules/m_channames.cpp
index fcb2ef6d7..8b050df2b 100644
--- a/src/modules/m_channames.cpp
+++ b/src/modules/m_channames.cpp
@@ -62,7 +62,6 @@ class ModuleChannelNames : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->IsChannel = &myhandler;
- OnRehash(NULL);
}
void ValidateChans()
@@ -102,7 +101,7 @@ class ModuleChannelNames : public Module
badchan = false;
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("channames");
std::string denyToken = tag->getString("denyrange");
diff --git a/src/modules/m_chghost.cpp b/src/modules/m_chghost.cpp
index 664508301..4d8223d13 100644
--- a/src/modules/m_chghost.cpp
+++ b/src/modules/m_chghost.cpp
@@ -96,11 +96,10 @@ class ModuleChgHost : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
ServerInstance->Modules->AddService(cmd);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
std::string hmap = ServerInstance->Config->ConfValue("hostname")->getString("charmap", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_/0123456789");
diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp
index 4e203d14c..bef4e94b8 100644
--- a/src/modules/m_cloaking.cpp
+++ b/src/modules/m_cloaking.cpp
@@ -148,8 +148,6 @@ class ModuleCloaking : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
-
ServerInstance->Modules->AddService(cu);
ServerInstance->Modules->AddService(ck);
ServerInstance->Modules->AddService(cu.ext);
@@ -331,7 +329,7 @@ class ModuleCloaking : public Module
return Version("Provides masking of user hostnames", VF_COMMON|VF_VENDOR, testcloak);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("cloak");
prefix = tag->getString("prefix");
diff --git a/src/modules/m_conn_waitpong.cpp b/src/modules/m_conn_waitpong.cpp
index c15205df3..76f41c4bf 100644
--- a/src/modules/m_conn_waitpong.cpp
+++ b/src/modules/m_conn_waitpong.cpp
@@ -39,10 +39,9 @@ class ModuleWaitPong : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(ext);
- OnRehash(NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("waitpong");
sendsnotice = tag->getBool("sendsnotice", true);
diff --git a/src/modules/m_connectban.cpp b/src/modules/m_connectban.cpp
index 227373a36..39639927c 100644
--- a/src/modules/m_connectban.cpp
+++ b/src/modules/m_connectban.cpp
@@ -29,17 +29,12 @@ class ModuleConnectBan : public Module
unsigned int ipv6_cidr;
public:
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
Version GetVersion() CXX11_OVERRIDE
{
return Version("Throttles the connections of IP ranges who try to connect flood.", VF_VENDOR);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("connectban");
diff --git a/src/modules/m_connflood.cpp b/src/modules/m_connflood.cpp
index 23b570bf6..2ab906e27 100644
--- a/src/modules/m_connflood.cpp
+++ b/src/modules/m_connflood.cpp
@@ -36,17 +36,12 @@ public:
{
}
- void init() CXX11_OVERRIDE
- {
- InitConf();
- }
-
Version GetVersion() CXX11_OVERRIDE
{
return Version("Connection throttle", VF_VENDOR);
}
- void InitConf()
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
/* read configuration variables */
ConfigTag* tag = ServerInstance->Config->ConfValue("connflood");
@@ -109,12 +104,6 @@ public:
}
return MOD_RES_PASSTHRU;
}
-
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- InitConf();
- }
-
};
MODULE_INIT(ModuleConnFlood)
diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp
index d65537537..169ba7203 100644
--- a/src/modules/m_dccallow.cpp
+++ b/src/modules/m_dccallow.cpp
@@ -258,12 +258,6 @@ class ModuleDCCAllow : public Module
ext = new SimpleExtItem<dccallowlist>("dccallow", this);
ServerInstance->Modules->AddService(*ext);
ServerInstance->Modules->AddService(cmd);
- ReadFileConf();
- }
-
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- ReadFileConf();
}
void OnUserQuit(User* user, const std::string &reason, const std::string &oper_message) CXX11_OVERRIDE
@@ -453,7 +447,7 @@ class ModuleDCCAllow : public Module
}
}
- void ReadFileConf()
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
bfl.clear();
ConfigTagList tags = ServerInstance->Config->ConfTags("banfile");
diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp
index 2e07aea41..3fdd2533e 100644
--- a/src/modules/m_deaf.cpp
+++ b/src/modules/m_deaf.cpp
@@ -56,11 +56,9 @@ class ModuleDeaf : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(m1);
-
- OnRehash(NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("deaf");
deaf_bypasschars = tag->getString("bypasschars");
diff --git a/src/modules/m_denychans.cpp b/src/modules/m_denychans.cpp
index 237447ac7..34b2fedd5 100644
--- a/src/modules/m_denychans.cpp
+++ b/src/modules/m_denychans.cpp
@@ -32,7 +32,7 @@ class ModuleDenyChannels : public Module
{
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
/* check for redirect validity and loops/chains */
ConfigTagList tags = ServerInstance->Config->ConfTags("badchan");
@@ -46,8 +46,8 @@ class ModuleDenyChannels : public Module
if (!ServerInstance->IsChannel(redirect))
{
- if (user)
- user->WriteNotice("Invalid badchan redirect '" + redirect + "'");
+ if (status.srcuser)
+ status.srcuser->WriteNotice("Invalid badchan redirect '" + redirect + "'");
throw ModuleException("Invalid badchan redirect, not a channel");
}
@@ -66,8 +66,8 @@ class ModuleDenyChannels : public Module
if (!goodchan)
{
/* <badchan:redirect> is a badchan */
- if (user)
- user->WriteNotice("Badchan " + name + " redirects to badchan " + redirect);
+ if (status.srcuser)
+ status.srcuser->WriteNotice("Badchan " + name + " redirects to badchan " + redirect);
throw ModuleException("Badchan redirect loop");
}
}
diff --git a/src/modules/m_dnsbl.cpp b/src/modules/m_dnsbl.cpp
index 3c9d64d49..a785678b5 100644
--- a/src/modules/m_dnsbl.cpp
+++ b/src/modules/m_dnsbl.cpp
@@ -231,7 +231,6 @@ class ModuleDNSBL : public Module
void init() CXX11_OVERRIDE
{
- ReadConf();
ServerInstance->Modules->AddService(nameExt);
ServerInstance->Modules->AddService(countExt);
}
@@ -243,7 +242,7 @@ class ModuleDNSBL : public Module
/** Fill our conf vector with data
*/
- void ReadConf()
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
DNSBLConfEntries.clear();
@@ -315,11 +314,6 @@ class ModuleDNSBL : public Module
}
}
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- ReadConf();
- }
-
void OnSetUserIP(LocalUser* user) CXX11_OVERRIDE
{
if ((user->exempt) || (user->client_sa.sa.sa_family != AF_INET) || !DNS)
diff --git a/src/modules/m_exemptchanops.cpp b/src/modules/m_exemptchanops.cpp
index a74658bcd..57057c411 100644
--- a/src/modules/m_exemptchanops.cpp
+++ b/src/modules/m_exemptchanops.cpp
@@ -117,8 +117,6 @@ class ModuleExemptChanOps : public Module
{
ServerInstance->Modules->AddService(eh.ec);
ServerInstance->OnCheckExemption = &eh;
-
- OnRehash(NULL);
}
~ModuleExemptChanOps()
@@ -131,7 +129,7 @@ class ModuleExemptChanOps : public Module
return Version("Provides the ability to allow channel operators to be exempt from certain modes.",VF_VENDOR);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
eh.ec.DoRehash();
}
diff --git a/src/modules/m_filter.cpp b/src/modules/m_filter.cpp
index d60dd7942..ec75ebebb 100644
--- a/src/modules/m_filter.cpp
+++ b/src/modules/m_filter.cpp
@@ -183,7 +183,7 @@ class ModuleFilter : public Module
FilterResult* FilterMatch(User* user, const std::string &text, int flags);
bool DeleteFilter(const std::string &freeform);
std::pair<bool, std::string> AddFilter(const std::string &freeform, FilterAction type, const std::string &reason, long duration, const std::string &flags);
- void OnRehash(User* user) CXX11_OVERRIDE;
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE;
Version GetVersion() CXX11_OVERRIDE;
std::string EncodeFilter(FilterResult* filter);
FilterResult DecodeFilter(const std::string &data);
@@ -301,7 +301,6 @@ ModuleFilter::ModuleFilter()
void ModuleFilter::init()
{
ServerInstance->Modules->AddService(filtcommand);
- OnRehash(NULL);
}
CullResult ModuleFilter::cull()
@@ -451,7 +450,7 @@ ModResult ModuleFilter::OnPreCommand(std::string &command, std::vector<std::stri
return MOD_RES_PASSTHRU;
}
-void ModuleFilter::OnRehash(User* user)
+void ModuleFilter::ReadConfig(ConfigStatus& status)
{
ConfigTagList tags = ServerInstance->Config->ConfTags("exemptfromfilter");
exemptfromfilter.clear();
diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp
index 7d7e9663a..6259636ce 100644
--- a/src/modules/m_helpop.cpp
+++ b/src/modules/m_helpop.cpp
@@ -108,12 +108,11 @@ class ModuleHelpop : public Module
void init() CXX11_OVERRIDE
{
- ReadConfig();
ServerInstance->Modules->AddService(ho);
ServerInstance->Modules->AddService(cmd);
}
- void ReadConfig()
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
helpop_map.clear();
@@ -146,11 +145,6 @@ class ModuleHelpop : public Module
}
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- ReadConfig();
- }
-
void OnWhois(User* src, User* dst) CXX11_OVERRIDE
{
if (dst->IsModeSet(ho))
diff --git a/src/modules/m_hidechans.cpp b/src/modules/m_hidechans.cpp
index 1bf87bd14..1bf6c1866 100644
--- a/src/modules/m_hidechans.cpp
+++ b/src/modules/m_hidechans.cpp
@@ -40,7 +40,6 @@ class ModuleHideChans : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(hm);
- OnRehash(NULL);
}
Version GetVersion() CXX11_OVERRIDE
@@ -48,7 +47,7 @@ class ModuleHideChans : public Module
return Version("Provides support for hiding channels with user mode +I", VF_VENDOR);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
AffectsOpers = ServerInstance->Config->ConfValue("hidechans")->getBool("affectsopers");
}
diff --git a/src/modules/m_hostchange.cpp b/src/modules/m_hostchange.cpp
index 74c58b22a..d0e44b394 100644
--- a/src/modules/m_hostchange.cpp
+++ b/src/modules/m_hostchange.cpp
@@ -51,12 +51,7 @@ class ModuleHostChange : public Module
std::string MySeparator;
public:
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* host = ServerInstance->Config->ConfValue("host");
MySuffix = host->getString("suffix");
diff --git a/src/modules/m_httpd_acl.cpp b/src/modules/m_httpd_acl.cpp
index 272316440..74d25deba 100644
--- a/src/modules/m_httpd_acl.cpp
+++ b/src/modules/m_httpd_acl.cpp
@@ -49,7 +49,7 @@ class ModuleHTTPAccessList : public Module
{
}
- void OnRehash(User* user)
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
acl_list.clear();
ConfigTagList acls = ServerInstance->Config->ConfTags("httpdacl");
@@ -93,11 +93,6 @@ class ModuleHTTPAccessList : public Module
}
}
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
void BlockAccess(HTTPRequest* http, int returnval, const std::string &extraheaderkey = "", const std::string &extraheaderval="")
{
ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "BlockAccess (%d)", returnval);
diff --git a/src/modules/m_ident.cpp b/src/modules/m_ident.cpp
index bbd66530e..a9a62fecf 100644
--- a/src/modules/m_ident.cpp
+++ b/src/modules/m_ident.cpp
@@ -279,7 +279,6 @@ class ModuleIdent : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(ext);
- OnRehash(NULL);
}
Version GetVersion() CXX11_OVERRIDE
@@ -287,7 +286,7 @@ class ModuleIdent : public Module
return Version("Provides support for RFC1413 ident lookups", VF_VENDOR);
}
- void OnRehash(User *user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
RequestTimeout = ServerInstance->Config->ConfValue("ident")->getInt("timeout", 5);
if (!RequestTimeout)
diff --git a/src/modules/m_inviteexception.cpp b/src/modules/m_inviteexception.cpp
index 700df27fb..2424808f6 100644
--- a/src/modules/m_inviteexception.cpp
+++ b/src/modules/m_inviteexception.cpp
@@ -54,8 +54,6 @@ public:
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(ie);
-
- OnRehash(NULL);
ie.DoImplements(this);
}
@@ -93,7 +91,7 @@ public:
ie.DoSyncChannel(chan, proto, opaque);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
invite_bypass_key = ServerInstance->Config->ConfValue("inviteexception")->getBool("bypasskey", true);
ie.DoRehash();
diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp
index f46ae97b4..e8018aea6 100644
--- a/src/modules/m_ircv3.cpp
+++ b/src/modules/m_ircv3.cpp
@@ -76,12 +76,7 @@ class ModuleIRCv3 : public Module
{
}
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* conf = ServerInstance->Config->ConfValue("ircv3");
accountnotify = conf->getBool("accountnotify", true);
diff --git a/src/modules/m_jumpserver.cpp b/src/modules/m_jumpserver.cpp
index 81022a907..c8a196832 100644
--- a/src/modules/m_jumpserver.cpp
+++ b/src/modules/m_jumpserver.cpp
@@ -170,10 +170,11 @@ class ModuleJumpServer : public Module
return MOD_RES_PASSTHRU;
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
// Emergency way to unlock
- if (!user) js.redirect_new_users = false;
+ if (!status.srcuser)
+ js.redirect_new_users = false;
}
Version GetVersion() CXX11_OVERRIDE
diff --git a/src/modules/m_knock.cpp b/src/modules/m_knock.cpp
index 96ea66d7b..79d8cddb6 100644
--- a/src/modules/m_knock.cpp
+++ b/src/modules/m_knock.cpp
@@ -99,11 +99,9 @@ class ModuleKnock : public Module
{
ServerInstance->Modules->AddService(kn);
ServerInstance->Modules->AddService(cmd);
-
- OnRehash(NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
std::string knocknotify = ServerInstance->Config->ConfValue("knock")->getString("notify");
irc::string notify(knocknotify.c_str());
diff --git a/src/modules/m_lockserv.cpp b/src/modules/m_lockserv.cpp
index 8fae86e1e..a31e4d324 100644
--- a/src/modules/m_lockserv.cpp
+++ b/src/modules/m_lockserv.cpp
@@ -93,10 +93,11 @@ class ModuleLockserv : public Module
ServerInstance->Modules->AddService(unlockcommand);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
// Emergency way to unlock
- if (!user) locked = false;
+ if (!status.srcuser)
+ locked = false;
}
ModResult OnUserRegister(LocalUser* user) CXX11_OVERRIDE
diff --git a/src/modules/m_maphide.cpp b/src/modules/m_maphide.cpp
index 21072c1fc..41de2997d 100644
--- a/src/modules/m_maphide.cpp
+++ b/src/modules/m_maphide.cpp
@@ -23,12 +23,7 @@ class ModuleMapHide : public Module
{
std::string url;
public:
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
url = ServerInstance->Config->ConfValue("security")->getString("maphide");
}
diff --git a/src/modules/m_nationalchars.cpp b/src/modules/m_nationalchars.cpp
index 99e525398..d65d3b49c 100644
--- a/src/modules/m_nationalchars.cpp
+++ b/src/modules/m_nationalchars.cpp
@@ -239,8 +239,6 @@ class ModuleNationalChars : public Module
national_case_insensitive_map = m_lower;
ServerInstance->IsNick = &myhandler;
-
- OnRehash(NULL);
}
void On005Numeric(std::map<std::string, std::string>& tokens) CXX11_OVERRIDE
@@ -248,7 +246,7 @@ class ModuleNationalChars : public Module
tokens["CASEMAPPING"] = casemapping;
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("nationalchars");
charset = tag->getString("file");
diff --git a/src/modules/m_nonicks.cpp b/src/modules/m_nonicks.cpp
index 4078e54a4..b9010d330 100644
--- a/src/modules/m_nonicks.cpp
+++ b/src/modules/m_nonicks.cpp
@@ -38,7 +38,6 @@ class ModuleNoNickChange : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
ServerInstance->Modules->AddService(nn);
}
@@ -80,7 +79,7 @@ class ModuleNoNickChange : public Module
return MOD_RES_PASSTHRU;
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
override = ServerInstance->Config->ConfValue("nonicks")->getBool("operoverride", false);
}
diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp
index b0c206ab3..83a049480 100644
--- a/src/modules/m_ojoin.cpp
+++ b/src/modules/m_ojoin.cpp
@@ -128,9 +128,6 @@ class ModuleOjoin : public Module
void init() CXX11_OVERRIDE
{
- /* Load config stuff */
- OnRehash(NULL);
-
std::string npre = ServerInstance->Config->ConfValue("ojoin")->getString("prefix");
char NPrefix = npre.empty() ? 0 : npre[0];
if (NPrefix && ServerInstance->Modes->FindPrefix(NPrefix))
@@ -157,7 +154,7 @@ class ModuleOjoin : public Module
return MOD_RES_PASSTHRU;
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* Conf = ServerInstance->Config->ConfValue("ojoin");
mycommand.notice = Conf->getBool("notice", true);
diff --git a/src/modules/m_operjoin.cpp b/src/modules/m_operjoin.cpp
index 80bb73ad4..8a5041190 100644
--- a/src/modules/m_operjoin.cpp
+++ b/src/modules/m_operjoin.cpp
@@ -50,13 +50,7 @@ class ModuleOperjoin : public Module
}
public:
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
-
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("operjoin");
diff --git a/src/modules/m_operlog.cpp b/src/modules/m_operlog.cpp
index 42a0e4ecf..0da0c1f20 100644
--- a/src/modules/m_operlog.cpp
+++ b/src/modules/m_operlog.cpp
@@ -29,7 +29,6 @@ class ModuleOperLog : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->SNO->EnableSnomask('r', "OPERLOG");
- OnRehash(NULL);
}
Version GetVersion() CXX11_OVERRIDE
@@ -37,7 +36,7 @@ class ModuleOperLog : public Module
return Version("A module which logs all oper commands to the ircd log at default loglevel.", VF_VENDOR);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
tosnomask = ServerInstance->Config->ConfValue("operlog")->getBool("tosnomask", false);
}
diff --git a/src/modules/m_opermotd.cpp b/src/modules/m_opermotd.cpp
index 1be81e641..543fa6854 100644
--- a/src/modules/m_opermotd.cpp
+++ b/src/modules/m_opermotd.cpp
@@ -83,7 +83,6 @@ class ModuleOpermotd : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(cmd);
- OnRehash(NULL);
}
Version GetVersion() CXX11_OVERRIDE
@@ -97,7 +96,7 @@ class ModuleOpermotd : public Module
cmd.ShowOperMOTD(user);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
cmd.opermotd.clear();
ConfigTag* conf = ServerInstance->Config->ConfValue("opermotd");
diff --git a/src/modules/m_override.cpp b/src/modules/m_override.cpp
index e342e7dab..7e0d796d7 100644
--- a/src/modules/m_override.cpp
+++ b/src/modules/m_override.cpp
@@ -46,14 +46,12 @@ class ModuleOverride : public Module
void init() CXX11_OVERRIDE
{
- // read our config options (main config file)
- OnRehash(NULL);
ServerInstance->SNO->EnableSnomask('v', "OVERRIDE");
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
- // re-read our config options on a rehash
+ // re-read our config options
ConfigTag* tag = ServerInstance->Config->ConfValue("override");
NoisyOverride = tag->getBool("noisy");
RequireKey = tag->getBool("requirekey");
diff --git a/src/modules/m_passforward.cpp b/src/modules/m_passforward.cpp
index 7f3cb6421..589fc06a6 100644
--- a/src/modules/m_passforward.cpp
+++ b/src/modules/m_passforward.cpp
@@ -24,17 +24,12 @@ class ModulePassForward : public Module
std::string nickrequired, forwardmsg, forwardcmd;
public:
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
Version GetVersion() CXX11_OVERRIDE
{
return Version("Sends server password to NickServ", VF_VENDOR);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("passforward");
nickrequired = tag->getString("nick", "NickServ");
diff --git a/src/modules/m_password_hash.cpp b/src/modules/m_password_hash.cpp
index 4f7d9e449..c8532e2ff 100644
--- a/src/modules/m_password_hash.cpp
+++ b/src/modules/m_password_hash.cpp
@@ -82,9 +82,6 @@ class ModuleOperHash : public Module
void init() CXX11_OVERRIDE
{
- /* Read the config file first */
- OnRehash(NULL);
-
ServerInstance->Modules->AddService(cmd);
}
diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp
index a19a184e0..ec04c7a45 100644
--- a/src/modules/m_permchannels.cpp
+++ b/src/modules/m_permchannels.cpp
@@ -169,8 +169,6 @@ public:
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(p);
-
- OnRehash(NULL);
}
CullResult cull()
@@ -199,7 +197,7 @@ public:
return Module::cull();
}
- void OnRehash(User *user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("permchanneldb");
permchannelsconf = tag->getString("filename");
diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp
index 43f7065b5..4a8574a6a 100644
--- a/src/modules/m_remove.cpp
+++ b/src/modules/m_remove.cpp
@@ -206,7 +206,6 @@ class ModuleRemove : public Module
{
ServerInstance->Modules->AddService(cmd1);
ServerInstance->Modules->AddService(cmd2);
- OnRehash(NULL);
}
void On005Numeric(std::map<std::string, std::string>& tokens) CXX11_OVERRIDE
@@ -214,7 +213,7 @@ class ModuleRemove : public Module
tokens["REMOVE"];
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
supportnokicks = ServerInstance->Config->ConfValue("remove")->getBool("supportnokicks");
}
diff --git a/src/modules/m_repeat.cpp b/src/modules/m_repeat.cpp
index 4591d8ad2..6ba65a767 100644
--- a/src/modules/m_repeat.cpp
+++ b/src/modules/m_repeat.cpp
@@ -352,10 +352,9 @@ class RepeatModule : public Module
ServerInstance->Modules->AddService(rm);
ServerInstance->Modules->AddService(rm.ChanSet);
ServerInstance->Modules->AddService(rm.MemberInfoExt);
- rm.ReadConfig();
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
rm.ReadConfig();
}
diff --git a/src/modules/m_restrictchans.cpp b/src/modules/m_restrictchans.cpp
index 21686add3..dcdd8a8a8 100644
--- a/src/modules/m_restrictchans.cpp
+++ b/src/modules/m_restrictchans.cpp
@@ -26,7 +26,8 @@ class ModuleRestrictChans : public Module
{
std::set<irc::string> allowchans;
- void ReadConfig()
+ public:
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
allowchans.clear();
ConfigTagList tags = ServerInstance->Config->ConfTags("allowchannel");
@@ -38,17 +39,6 @@ class ModuleRestrictChans : public Module
}
}
- public:
- void init() CXX11_OVERRIDE
- {
- ReadConfig();
- }
-
- void OnRehash(User* user) CXX11_OVERRIDE
- {
- ReadConfig();
- }
-
ModResult OnUserPreJoin(LocalUser* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven) CXX11_OVERRIDE
{
irc::string x(cname.c_str());
diff --git a/src/modules/m_rline.cpp b/src/modules/m_rline.cpp
index 7a65947d3..01d8b753a 100644
--- a/src/modules/m_rline.cpp
+++ b/src/modules/m_rline.cpp
@@ -223,8 +223,6 @@ class ModuleRLine : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
-
ServerInstance->Modules->AddService(r);
ServerInstance->XLines->RegisterFactory(&f);
}
@@ -254,7 +252,7 @@ class ModuleRLine : public Module
return MOD_RES_PASSTHRU;
}
- void OnRehash(User *user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("rline");
diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp
index 8b6d4ed85..1ef1fa073 100644
--- a/src/modules/m_sasl.cpp
+++ b/src/modules/m_sasl.cpp
@@ -256,8 +256,6 @@ class ModuleSASL : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
-
ServiceProvider* providelist[] = { &auth, &sasl, &authExt };
ServerInstance->Modules->AddServices(providelist, 3);
@@ -265,7 +263,7 @@ class ModuleSASL : public Module
ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "WARNING: m_services_account.so and m_cap.so are not loaded! m_sasl.so will NOT function correctly until these two modules are loaded!");
}
- void OnRehash(User*) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
sasl_target = ServerInstance->Config->ConfValue("sasl")->getString("target", "*");
}
diff --git a/src/modules/m_securelist.cpp b/src/modules/m_securelist.cpp
index cfafd4f05..9e1aeea1a 100644
--- a/src/modules/m_securelist.cpp
+++ b/src/modules/m_securelist.cpp
@@ -27,17 +27,12 @@ class ModuleSecureList : public Module
time_t WaitTime;
public:
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
Version GetVersion() CXX11_OVERRIDE
{
return Version("Disallows /LIST for recently connected clients to hinder spam bots", VF_VENDOR);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
allowlist.clear();
diff --git a/src/modules/m_sethost.cpp b/src/modules/m_sethost.cpp
index fb9fd7f1f..80953ee6f 100644
--- a/src/modules/m_sethost.cpp
+++ b/src/modules/m_sethost.cpp
@@ -76,11 +76,10 @@ class ModuleSetHost : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
ServerInstance->Modules->AddService(cmd);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
std::string hmap = ServerInstance->Config->ConfValue("hostname")->getString("charmap", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-_/0123456789");
diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp
index dbc1812c7..b5d579d00 100644
--- a/src/modules/m_shun.cpp
+++ b/src/modules/m_shun.cpp
@@ -181,8 +181,6 @@ class ModuleShun : public Module
{
ServerInstance->XLines->RegisterFactory(&f);
ServerInstance->Modules->AddService(cmd);
-
- OnRehash(NULL);
}
~ModuleShun()
@@ -206,7 +204,7 @@ class ModuleShun : public Module
return MOD_RES_DENY;
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("shun");
std::string cmds = tag->getString("enabledcommands");
diff --git a/src/modules/m_silence.cpp b/src/modules/m_silence.cpp
index b6cb897e7..c17cd8e36 100644
--- a/src/modules/m_silence.cpp
+++ b/src/modules/m_silence.cpp
@@ -301,13 +301,12 @@ class ModuleSilence : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
ServerInstance->Modules->AddService(cmdsilence);
ServerInstance->Modules->AddService(cmdsvssilence);
ServerInstance->Modules->AddService(cmdsilence.ext);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
maxsilence = ServerInstance->Config->ConfValue("showwhois")->getInt("maxentries", 32);
if (!maxsilence)
diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp
index 9ece3c03d..1e59e1607 100644
--- a/src/modules/m_spanningtree/main.cpp
+++ b/src/modules/m_spanningtree/main.cpp
@@ -618,7 +618,7 @@ void ModuleSpanningTree::OnPreRehash(User* user, const std::string &parameter)
}
}
-void ModuleSpanningTree::OnRehash(User* user)
+void ModuleSpanningTree::ReadConfig(ConfigStatus& status)
{
// Re-read config stuff
try
@@ -633,7 +633,7 @@ void ModuleSpanningTree::OnRehash(User* user)
std::string msg = "Error in configuration: ";
msg.append(e.GetReason());
ServerInstance->SNO->WriteToSnoMask('l', msg);
- if (user && !IS_LOCAL(user))
+ if (status.srcuser && !IS_LOCAL(status.srcuser))
ServerInstance->PI->SendSNONotice("L", msg);
}
}
diff --git a/src/modules/m_spanningtree/main.h b/src/modules/m_spanningtree/main.h
index f03a36db2..10f698f22 100644
--- a/src/modules/m_spanningtree/main.h
+++ b/src/modules/m_spanningtree/main.h
@@ -142,7 +142,7 @@ class ModuleSpanningTree : public Module
void OnUserPostNick(User* user, const std::string &oldnick) CXX11_OVERRIDE;
void OnUserKick(User* source, Membership* memb, const std::string &reason, CUList& excepts) CXX11_OVERRIDE;
void OnPreRehash(User* user, const std::string &parameter) CXX11_OVERRIDE;
- void OnRehash(User* user) CXX11_OVERRIDE;
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE;
void OnOper(User* user, const std::string &opertype) CXX11_OVERRIDE;
void OnLine(User* source, const std::string &host, bool adding, char linetype, long duration, const std::string &reason);
void OnAddLine(User *u, XLine *x) CXX11_OVERRIDE;
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp
index 40db1339c..0ec0a57f9 100644
--- a/src/modules/m_spanningtree/utils.cpp
+++ b/src/modules/m_spanningtree/utils.cpp
@@ -131,8 +131,6 @@ SpanningTreeUtilities::SpanningTreeUtilities(ModuleSpanningTree* C)
: Creator(C), TreeRoot(NULL)
{
ServerInstance->Timers->AddTimer(&RefreshTimer);
-
- this->ReadConfiguration();
}
CullResult SpanningTreeUtilities::cull()
diff --git a/src/modules/m_sqlauth.cpp b/src/modules/m_sqlauth.cpp
index ba969e54d..fe65d2805 100644
--- a/src/modules/m_sqlauth.cpp
+++ b/src/modules/m_sqlauth.cpp
@@ -84,10 +84,9 @@ class ModuleSQLAuth : public Module
void init() CXX11_OVERRIDE
{
ServerInstance->Modules->AddService(pendingExt);
- OnRehash(NULL);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* conf = ServerInstance->Config->ConfValue("sqlauth");
std::string dbid = conf->getString("dbid");
diff --git a/src/modules/m_sqloper.cpp b/src/modules/m_sqloper.cpp
index 295f4aa94..fb5b65e56 100644
--- a/src/modules/m_sqloper.cpp
+++ b/src/modules/m_sqloper.cpp
@@ -111,12 +111,7 @@ class ModuleSQLOper : public Module
public:
ModuleSQLOper() : SQL(this, "SQL") {}
- void init() CXX11_OVERRIDE
- {
- OnRehash(NULL);
- }
-
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
ConfigTag* tag = ServerInstance->Config->ConfValue("sqloper");
diff --git a/src/modules/m_watch.cpp b/src/modules/m_watch.cpp
index 94f53c164..be1dcfc91 100644
--- a/src/modules/m_watch.cpp
+++ b/src/modules/m_watch.cpp
@@ -376,13 +376,12 @@ class Modulewatch : public Module
void init() CXX11_OVERRIDE
{
- OnRehash(NULL);
ServerInstance->Modules->AddService(cmdw);
ServerInstance->Modules->AddService(sw);
ServerInstance->Modules->AddService(cmdw.ext);
}
- void OnRehash(User* user) CXX11_OVERRIDE
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
{
maxwatch = ServerInstance->Config->ConfValue("watch")->getInt("maxentries", 32);
if (!maxwatch)
diff --git a/src/modules/m_xline_db.cpp b/src/modules/m_xline_db.cpp
index 63eb6d3ee..d482dca2b 100644
--- a/src/modules/m_xline_db.cpp
+++ b/src/modules/m_xline_db.cpp
@@ -31,7 +31,7 @@ class ModuleXLineDB : public Module
{
/* Load the configuration
* Note:
- * this is on purpose not in the OnRehash() method. It would be non-trivial to change the database on-the-fly.
+ * This is on purpose not changed on a rehash. It would be non-trivial to change the database on-the-fly.
* Imagine a scenario where the new file already exists. Merging the current XLines with the existing database is likely a bad idea
* ...and so is discarding all current in-memory XLines for the ones in the database.
*/