Module: ngircd.git Branch: master Commit: 338758799d601a4f70c379d2d692b0178cea882f URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=33875...
Author: Alexander Barton alex@barton.de Date: Sun Dec 25 19:27:06 2011 +0100
Log better error messages when rejecting clients
---
src/ngircd/irc-login.c | 27 +++++++++++++++------------ 1 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/src/ngircd/irc-login.c b/src/ngircd/irc-login.c index 140d68e..8d82160 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; }