diff options
-rw-r--r-- | src/inspircd.cpp | 17 | ||||
-rw-r--r-- | src/xline.cpp | 8 |
2 files changed, 16 insertions, 9 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 369c1f4c4..b1aedde73 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -4087,14 +4087,13 @@ int InspIRCd(void) if (current->registered == 7) { kill_link(current,"RecvQ exceeded"); - goto label; } else { 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()) @@ -4102,9 +4101,17 @@ int InspIRCd(void) floodlines++; if ((floodlines > current->flood) && (current->flood != 0)) { - 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 (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]; diff --git a/src/xline.cpp b/src/xline.cpp index 0e625bb52..35ebc50f3 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -663,7 +663,7 @@ void apply_lines() char* check = matches_gline(host); if (check) { - WriteOpers("*** User %s matches G-Line: %s",u->second->nick,check); + WriteOpers("*** User %s matches G-Line: %s",u->registered == 7 ? u->second->nick:"<unknown>",check); snprintf(reason,MAXBUF,"G-Lined: %s",check); kill_link(u->second,reason); go_again = true; @@ -675,7 +675,7 @@ void apply_lines() char* check = matches_kline(host); if (check) { - WriteOpers("*** User %s matches K-Line: %s",u->second->nick,check); + WriteOpers("*** User %s matches K-Line: %s",u->registered == 7 ? u->second->nick:"<unknown>",check); snprintf(reason,MAXBUF,"K-Lined: %s",check); kill_link(u->second,reason); go_again = true; @@ -688,7 +688,7 @@ void apply_lines() if (check) { snprintf(reason,MAXBUF,"Matched Q-Lined nick: %s",check); - WriteOpers("*** Q-Lined nickname %s from %s: %s",u->second->nick,u->second->host,check); + WriteOpers("*** Q-Lined nickname %s from %s: %s",u->registered == 7 ? u->second->nick:"<unknown>",u->second->host,check); kill_link(u->second,reason); go_again = true; break; @@ -700,7 +700,7 @@ void apply_lines() if (check) { snprintf(reason,MAXBUF,"Z-Lined: %s",check); - WriteOpers("*** User %s matches Z-Line: %s",u->second->nick,u->second->host,check); + WriteOpers("*** User %s matches Z-Line: %s",u->registered == 7 ? u->second->nick:"<unknown>",u->second->host,check); kill_link(u->second,reason); go_again = true; break; |