if (current->registered == 7)
{
kill_link(current,"RecvQ exceeded");
- goto label;
}
else
{
+ WriteOpers("*** Excess flood from %s",current->ip);
+ log(DEFAULT,"Excess flood from: %s",current->ip);
add_zline(120,ServerName,"Flood from unregistered connection",current->ip);
apply_lines();
- goto label;
}
+ goto label;
}
// while there are complete lines to process...
while (current->BufferIsReady())
{
floodlines++;
- if ((floodlines > current->flood) && (current->flood != 0))
+ if (TIME > current->reset_due)
{
- log(DEFAULT,"Excess flood from: %s!%s@%s",current->nick,current->ident,current->host);
- WriteOpers("*** Excess flood from: %s!%s@%s",current->nick,current->ident,current->host);
+ current->reset_due = TIME+3;
+ current->lines_in = 0;
+ }
+ current->lines_in++;
+ if (current->lines_in > current->flood)
+ {
+ log(DEFAULT,"Excess flood from: %s!%s@%s",current->nick,current->ident,current->host);
+ WriteOpers("*** Excess flood from: %s!%s@%s",current->nick,current->ident,current->host);
kill_link(current,"Excess flood");
+ }
+ if ((floodlines > current->flood) && (current->flood != 0))
+ {
+ if (current->registered == 7)
+ {
+ log(DEFAULT,"Excess flood from: %s!%s@%s",current->nick,current->ident,current->host);
+ WriteOpers("*** Excess flood from: %s!%s@%s",current->nick,current->ident,current->host);
+ kill_link(current,"Excess flood");
+ }
+ else
+ {
+ add_zline(120,ServerName,"Flood from unregistered connection",current->ip);
+ apply_lines();
+ }
goto label;
}
char sanitized[MAXBUF];