about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ngircd/irc.c b/src/ngircd/irc.c
index 63c4813a..a678f904 100644
--- a/src/ngircd/irc.c
+++ b/src/ngircd/irc.c
@@ -81,6 +81,17 @@ IRC_ERROR( CLIENT *Client, REQUEST *Req )
 	assert( Client != NULL );
 	assert( Req != NULL );
 
+	if (Client_Type(Client) != CLIENT_GOTPASS
+	    && Client_Type(Client) != CLIENT_GOTPASS_2813
+	    && Client_Type(Client) != CLIENT_UNKNOWNSERVER
+	    && Client_Type(Client) != CLIENT_SERVER
+	    && Client_Type(Client) != CLIENT_SERVICE) {
+		LogDebug("Ignored ERROR command from \"%s\" ...",
+			 Client_Mask(Client));
+		IRC_SetPenalty(Client, 2);
+		return CONNECTED;
+	}
+
 	if (Req->argc < 1)
 		Log(LOG_NOTICE, "Got ERROR from \"%s\"!",
 		    Client_Mask(Client));