aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_joinflood.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_joinflood.cpp')
-rw-r--r--src/modules/m_joinflood.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/modules/m_joinflood.cpp b/src/modules/m_joinflood.cpp
index 5dfeb845f..c8836d12f 100644
--- a/src/modules/m_joinflood.cpp
+++ b/src/modules/m_joinflood.cpp
@@ -152,20 +152,21 @@ class ModuleJoinFlood
{
}
- void ReadConfig(ConfigStatus&) override
+ void ReadConfig(ConfigStatus& status) override
{
auto tag = ServerInstance->Config->ConfValue("joinflood");
duration = static_cast<unsigned int>(tag->getDuration("duration", 60, 10, 600));
bootwait = tag->getDuration("bootwait", 30);
splitwait = tag->getDuration("splitwait", 30);
- ignoreuntil = ServerInstance->startup_time + bootwait;
+ if (status.initial)
+ ignoreuntil = ServerInstance->startup_time + bootwait;
}
void OnServerSplit(const Server* server, bool error) override
{
if (splitwait)
- ignoreuntil = ServerInstance->Time() + splitwait;
+ ignoreuntil = std::max<time_t>(ignoreuntil, ServerInstance->Time() + splitwait);
}
ModResult OnUserPreJoin(LocalUser* user, Channel* chan, const std::string& cname, std::string& privs, const std::string& keygiven, bool override) override