m_rline Switch to OnUserRegister hook to disconnect banned users earlier

This commit is contained in:
attilamolnar 2013-04-21 18:09:41 +02:00
parent 216877cc5b
commit 25d00181cd

View File

@ -241,7 +241,7 @@ class ModuleRLine : public Module
ServerInstance->Modules->AddService(r);
ServerInstance->XLines->RegisterFactory(&f);
Implementation eventlist[] = { I_OnUserConnect, I_OnRehash, I_OnUserPostNick, I_OnStats, I_OnBackgroundTimer, I_OnUnloadModule };
Implementation eventlist[] = { I_OnUserRegister, I_OnRehash, I_OnUserPostNick, I_OnStats, I_OnBackgroundTimer, I_OnUnloadModule };
ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
}
@ -256,7 +256,7 @@ class ModuleRLine : public Module
return Version("RLINE: Regexp user banning.", VF_COMMON | VF_VENDOR, rxfactory ? rxfactory->name : "");
}
virtual void OnUserConnect(LocalUser* user)
ModResult OnUserRegister(LocalUser* user)
{
// Apply lines on user connect
XLine *rl = ServerInstance->XLines->MatchesLine("R", user);
@ -265,7 +265,9 @@ class ModuleRLine : public Module
{
// Bang. :P
rl->Apply(user);
return MOD_RES_DENY;
}
return MOD_RES_PASSTHRU;
}
virtual void OnRehash(User *user)
@ -349,6 +351,12 @@ class ModuleRLine : public Module
ServerInstance->XLines->DelAll(f.GetType());
}
}
void Prioritize()
{
Module* mod = ServerInstance->Modules->Find("m_cgiirc.so");
ServerInstance->Modules->SetPriority(this, I_OnUserRegister, PRIORITY_AFTER, mod);
}
};
MODULE_INIT(ModuleRLine)