aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_permchannels.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2019-07-16 15:11:21 +0100
committerGravatar Sadie Powell2019-07-16 16:48:18 +0100
commitcd8b456f979733525941284639d8bf899173b429 (patch)
treef1d26962e61c74c5acb076662a909beafbe8e5fd /src/modules/m_permchannels.cpp
parentReplace socketengine_{pthread,win32} with C++11 threads. (diff)
parentssl_gnutls: remove PackageInfo directives for EOL Debian versions. (diff)
Merge branch 'insp3' into master.
Diffstat (limited to 'src/modules/m_permchannels.cpp')
-rw-r--r--src/modules/m_permchannels.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp
index 60f760330..adc878094 100644
--- a/src/modules/m_permchannels.cpp
+++ b/src/modules/m_permchannels.cpp
@@ -51,7 +51,6 @@ class PermChannel : public ModeHandler
static std::string permchannelsconf;
static bool WriteDatabase(PermChannel& permchanmode, Module* mod, bool save_listmodes)
{
- ChanModeReference ban(mod, "ban");
/*
* We need to perform an atomic write so as not to fuck things up.
* So, let's write to a temporary file, flush it, then rename the file..
@@ -157,7 +156,10 @@ static bool WriteDatabase(PermChannel& permchanmode, Module* mod, bool save_list
return true;
}
-class ModulePermanentChannels : public Module
+class ModulePermanentChannels
+ : public Module
+ , public Timer
+
{
PermChannel p;
bool dirty;
@@ -166,7 +168,10 @@ class ModulePermanentChannels : public Module
public:
ModulePermanentChannels()
- : p(this), dirty(false), loaded(false)
+ : Timer(0, true)
+ , p(this)
+ , dirty(false)
+ , loaded(false)
{
}
@@ -175,6 +180,7 @@ public:
ConfigTag* tag = ServerInstance->Config->ConfValue("permchanneldb");
permchannelsconf = tag->getString("filename");
save_listmodes = tag->getBool("listmodes");
+ SetInterval(tag->getDuration("saveperiod", 5));
if (!permchannelsconf.empty())
permchannelsconf = ServerInstance->Config->Paths.PrependConfig(permchannelsconf);
@@ -266,11 +272,12 @@ public:
dirty = true;
}
- void OnBackgroundTimer(time_t) override
+ bool Tick(time_t) override
{
if (dirty)
WriteDatabase(p, this, save_listmodes);
dirty = false;
+ return true;
}
void Prioritize() override