current->registered == REG_ALL ? current->nick : "",
current->registered == REG_ALL ? "!" : "", current->ident, current->host);
User::QuitUser(Server, current, "Excess flood");
+
if (current->registered != REG_ALL)
{
- Server->XLines->add_zline(120, Server->Config->ServerName, "Flood from unregistered connection", current->GetIPString());
- Server->XLines->apply_lines(APPLY_ZLINES);
+ ZLine* zl = new ZLine(Server, Server->Time(), 0, Server->Config->ServerName, "Flood from unregistered connection", current->GetIPString());
+ if (Server->XLines->AddLine(zl,NULL))
+ Server->XLines->ApplyLines();
+ else
+ delete zl;
}
}
// AddBuffer returned false, theres too much data in the user's buffer and theyre up to no good.
if (current->registered == REG_ALL)
{
- // Make sure they arn't flooding long lines.
- if (Server->Time() > current->reset_due)
- {
- current->reset_due = Server->Time() + current->MyClass->GetThreshold();
- current->lines_in = 0;
- }
-
- current->lines_in++;
-
- if (current->MyClass->GetFlood() && current->lines_in > current->MyClass->GetFlood())
- Server->FloodQuitUser(current);
- else
+ if (current->MyClass)
{
- current->WriteServ("NOTICE %s :Your previous line was too long and was not delivered (Over %d chars) Please shorten it.", current->nick, MAXBUF-2);
- current->recvq.clear();
+ // Make sure they arn't flooding long lines.
+ if (Server->Time() > current->reset_due)
+ {
+ current->reset_due = Server->Time() + current->MyClass->GetThreshold();
+ current->lines_in = 0;
+ }
+
+ current->lines_in++;
+
+ if (current->MyClass->GetFlood() && current->lines_in > current->MyClass->GetFlood())
+ Server->FloodQuitUser(current);
+ else
+ {
+ current->WriteServ("NOTICE %s :Your previous line was too long and was not delivered (Over %d chars) Please shorten it.", current->nick, MAXBUF-2);
+ current->recvq.clear();
+ }
}
}
else