public:
void init()
{
- Implementation eventlist[] = { I_OnUserConnect, I_OnGarbageCollect, I_OnRehash };
- ServerInstance->Modules->Attach(eventlist, this, 3);
+ Implementation eventlist[] = { I_OnSetUserIP, I_OnGarbageCollect, I_OnRehash };
+ ServerInstance->Modules->Attach(eventlist, this, sizeof(eventlist)/sizeof(Implementation));
OnRehash(NULL);
}
banduration = 10*60;
}
- virtual void OnUserConnect(LocalUser *u)
+ virtual void OnSetUserIP(LocalUser* u)
{
+ if (u->exempt)
+ return;
+
int range = 32;
clonemap::iterator i;
{
// Create zline for set duration.
ZLine* zl = new ZLine(ServerInstance->Time(), banduration, ServerInstance->Config->ServerName, "Your IP range has been attempting to connect too many times in too short a duration. Wait a while, and you will be able to connect.", mask.str());
- if (ServerInstance->XLines->AddLine(zl,NULL))
- ServerInstance->XLines->ApplyLines();
- else
+ if (!ServerInstance->XLines->AddLine(zl, NULL))
+ {
delete zl;
-
+ return;
+ }
+ ServerInstance->XLines->ApplyLines();
std::string maskstr = mask.str();
std::string timestr = ServerInstance->TimeString(zl->expiry);
ServerInstance->SNO->WriteGlobalSno('x',"Module m_connectban added Z:line on *@%s to expire on %s: Connect flooding",