diff options
Diffstat (limited to 'src/modules/m_joinflood.cpp')
| -rw-r--r-- | src/modules/m_joinflood.cpp | 7 |
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 |
