From: Timo Sirainen Date: Tue, 8 Nov 2011 19:29:34 +0000 (+0200) Subject: login: If login fails for some reason, but auth was successful, don't log "auth failed". X-Git-Tag: 2.1.beta1~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=843640f0ca224bb9999acb290bca5f76037ab984;p=thirdparty%2Fdovecot%2Fcore.git login: If login fails for some reason, but auth was successful, don't log "auth failed". For example if proxy fails to connect to remote server. --- diff --git a/src/login-common/client-common.c b/src/login-common/client-common.c index 44fc6926ce..0381fa80a5 100644 --- a/src/login-common/client-common.c +++ b/src/login-common/client-common.c @@ -528,6 +528,10 @@ const char *client_get_extra_disconnect_reason(struct client *client) if (client->auth_try_aborted && client->auth_attempts == 1) return "(aborted authentication)"; + if (client->auth_successes > 0) { + return t_strdup_printf("(internal failure, %u succesful auths)", + client->auth_successes); + } return t_strdup_printf("(auth failed, %u attempts)", client->auth_attempts); } diff --git a/src/login-common/client-common.h b/src/login-common/client-common.h index 85d9147468..4b7727a1f2 100644 --- a/src/login-common/client-common.h +++ b/src/login-common/client-common.h @@ -106,7 +106,7 @@ struct client { sasl_server_callback_t *sasl_callback; unsigned int bad_counter; - unsigned int auth_attempts; + unsigned int auth_attempts, auth_successes; pid_t mail_pid; char *virtual_user; diff --git a/src/login-common/sasl-server.c b/src/login-common/sasl-server.c index 1da72861c6..a8d6584be3 100644 --- a/src/login-common/sasl-server.c +++ b/src/login-common/sasl-server.c @@ -221,6 +221,7 @@ authenticate_callback(struct auth_client_request *request, break; case AUTH_REQUEST_STATUS_OK: client->auth_request = NULL; + client->auth_successes++; nologin = FALSE; for (i = 0; args[i] != NULL; i++) {