From 338758799d601a4f70c379d2d692b0178cea882f Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Sun, 25 Dec 2011 19:27:06 +0100 Subject: [PATCH] Log better error messages when rejecting clients --- src/ngircd/irc-login.c | 27 +++++++++++++++------------ 1 file 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; } -- 2.40.0