X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_connflood.cpp;h=5070dd3a76b26e6e629f71b4415451e104c43ca3;hb=99af213a58946185621b3e4de01970a7c21cce93;hp=f77691e3276a8efe2f6649b4da04d31a588b79fc;hpb=e5aaeec62619dfe114010502416af37dc38f5ba1;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_connflood.cpp b/src/modules/m_connflood.cpp index f77691e32..5070dd3a7 100644 --- a/src/modules/m_connflood.cpp +++ b/src/modules/m_connflood.cpp @@ -21,12 +21,11 @@ #include "inspircd.h" -/* $ModDesc: Connection throttle */ - class ModuleConnFlood : public Module { -private: - int seconds, timeout, boot_wait; + unsigned int seconds; + unsigned int timeout; + unsigned int boot_wait; unsigned int conns; unsigned int maxconns; bool throttled; @@ -39,35 +38,28 @@ public: { } - void init() - { - InitConf(); - Implementation eventlist[] = { I_OnRehash, I_OnUserRegister }; - ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation)); - } - - virtual Version GetVersion() + 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"); /* throttle configuration */ - seconds = tag->getInt("seconds"); - maxconns = tag->getInt("maxconns"); - timeout = tag->getInt("timeout"); + seconds = tag->getDuration("period", tag->getDuration("seconds", 30)); + maxconns = tag->getUInt("maxconns", 3); + timeout = tag->getDuration("timeout", 30); quitmsg = tag->getString("quitmsg"); /* seconds to wait when the server just booted */ - boot_wait = tag->getInt("bootwait"); + boot_wait = tag->getDuration("bootwait", 10); first = ServerInstance->Time(); } - virtual ModResult OnUserRegister(LocalUser* user) + ModResult OnUserRegister(LocalUser* user) CXX11_OVERRIDE { if (user->exempt) return MOD_RES_PASSTHRU; @@ -114,12 +106,6 @@ public: } return MOD_RES_PASSTHRU; } - - virtual void OnRehash(User* user) - { - InitConf(); - } - }; MODULE_INIT(ModuleConnFlood)