]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
A few anti-flood features
[user/henk/code/inspircd.git] / src / inspircd.cpp
index b1aedde73132f856334235d52ce0967fff4b1969..2558f3efc57a6c40d828adcb7a087318b0c5969e 100644 (file)
@@ -4090,6 +4090,8 @@ int InspIRCd(void)
                                                        }
                                                        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();
                                                        }
@@ -4099,6 +4101,18 @@ int InspIRCd(void)
                                                while (current->BufferIsReady())
                                                {
                                                        floodlines++;
+                                                       if (TIME > current->reset_due)
+                                                       {
+                                                               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)