public:
ModuleConnFlood()
: conns(0), throttled(false)
+ {
+ }
+
+ void init()
{
InitConf();
Implementation eventlist[] = { I_OnRehash, I_OnUserRegister };
- ServerInstance->Modules->Attach(eventlist, this, 2);
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
virtual Version GetVersion()
void InitConf()
{
/* read configuration variables */
- ConfigReader conf;
+ ConfigTag* tag = ServerInstance->Config->ConfValue("connflood");
/* throttle configuration */
- seconds = conf.ReadInteger("connflood", "seconds", 0, true);
- maxconns = conf.ReadInteger("connflood", "maxconns", 0, true);
- timeout = conf.ReadInteger("connflood", "timeout", 0, true);
- quitmsg = conf.ReadValue("connflood", "quitmsg", 0);
+ seconds = tag->getInt("seconds");
+ maxconns = tag->getInt("maxconns");
+ timeout = tag->getInt("timeout");
+ quitmsg = tag->getString("quitmsg");
/* seconds to wait when the server just booted */
- boot_wait = conf.ReadInteger("connflood", "bootwait", 0, true);
+ boot_wait = tag->getInt("bootwait");
first = ServerInstance->Time();
}
virtual ModResult OnUserRegister(LocalUser* user)
{
+ if (user->exempt)
+ return MOD_RES_PASSTHRU;
+
time_t next = ServerInstance->Time();
if ((ServerInstance->startup_time + boot_wait) > next)