about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2011-12-25 19:27:06 +0100
committerAlexander Barton <alex@barton.de>2011-12-25 19:27:06 +0100
commit338758799d601a4f70c379d2d692b0178cea882f (patch)
treed389d38f5cb4360fce55418306adffff94551e8d /src
parent164e15b8c6eb86d4ae640d64a849945e0b4395b0 (diff)
downloadngircd-338758799d601a4f70c379d2d692b0178cea882f.tar.gz
ngircd-338758799d601a4f70c379d2d692b0178cea882f.zip
Log better error messages when rejecting clients
Diffstat (limited to 'src')
-rw-r--r--src/ngircd/irc-login.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c
index 140d68e0..8d821608 100644
--- a/src/ngircd/irc-login.c
+++ b/src/ngircd/irc-login.c
@@ -47,7 +47,7 @@ static bool Hello_User PARAMS(( CLIENT *Client ));
 static bool Hello_User_PostAuth PARAMS(( CLIENT *Client ));
 static void Kill_Nick PARAMS(( char *Nick, char *Reason ));
 static void Introduce_Client PARAMS((CLIENT *To, CLIENT *Client, int Type));
-static void Reject_Client PARAMS((CLIENT *Client));
+static void Reject_Client PARAMS((CLIENT *Client, const char *InternalReason));
 
 static void cb_introduceClient PARAMS((CLIENT *Client, CLIENT *Prefix,
 				       void *i));
@@ -945,7 +945,7 @@ Hello_User(CLIENT * Client)
 		 * passwords supplied are classified as "wrong". */
 		if(Client_Password(Client)[0] == '\0')
 			return Hello_User_PostAuth(Client);
-		Reject_Client(Client);
+		Reject_Client(Client, "non-empty password");
 		return DISCONNECTED;
 	}
 
@@ -972,7 +972,7 @@ Hello_User(CLIENT * Client)
 	/* Check global server password ... */
 	if (strcmp(Client_Password(Client), Conf_ServerPwd) != 0) {
 		/* Bad password! */
-		Reject_Client(Client);
+		Reject_Client(Client, "bad server password");
 		return DISCONNECTED;
 	}
 	return Hello_User_PostAuth(Client);
@@ -1017,7 +1017,7 @@ cb_Read_Auth_Result(int r_fd, UNUSED short events)
 
 	if (len != sizeof(result)) {
 		Log(LOG_CRIT, "Auth: Got malformed result!");
-		Reject_Client(client);
+		Reject_Client(client, "internal error");
 		return;
 	}
 
@@ -1025,7 +1025,7 @@ cb_Read_Auth_Result(int r_fd, UNUSED short events)
 		Client_SetUser(client, Client_OrigUser(client), true);
 		(void)Hello_User_PostAuth(client);
 	} else
-		Reject_Client(client);
+		Reject_Client(client, "bad password");
 }
 
 #endif
@@ -1040,12 +1040,12 @@ cb_Read_Auth_Result(int r_fd, UNUSED short events)
  * @param Client	The client to reject.
  */
 static void
-Reject_Client(CLIENT *Client)
+Reject_Client(CLIENT *Client, const char *InternalReason)
 {
 	Log(LOG_ERR,
-	    "User \"%s\" rejected (connection %d): Access denied!",
-	    Client_Mask(Client), Client_Conn(Client));
-	Conn_Close(Client_Conn(Client), NULL,
+	    "User \"%s\" rejected (connection %d): %s!",
+	    Client_Mask(Client), Client_Conn(Client), InternalReason);
+	Conn_Close(Client_Conn(Client), InternalReason,
 		   "Access denied! Bad password?", true);
 }
 
@@ -1062,9 +1062,12 @@ Reject_Client(CLIENT *Client)
 static bool
 Hello_User_PostAuth(CLIENT *Client)
 {
-	if (Class_IsMember(CLASS_GLINE, Client) ||
-	    Class_IsMember(CLASS_KLINE, Client)) {
-		Reject_Client(Client);
+	if (Class_IsMember(CLASS_GLINE, Client)) {
+		Reject_Client(Client, "G-Line'd");
+		return DISCONNECTED;
+	}
+	if (Class_IsMember(CLASS_KLINE, Client)) {
+		Reject_Client(Client, "K-Line'd");
 		return DISCONNECTED;
 	}