]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login: If login fails for some reason, but auth was successful, don't log "auth failed".
authorTimo Sirainen <tss@iki.fi>
Tue, 8 Nov 2011 19:29:34 +0000 (21:29 +0200)
committerTimo Sirainen <tss@iki.fi>
Tue, 8 Nov 2011 19:29:34 +0000 (21:29 +0200)
For example if proxy fails to connect to remote server.

src/login-common/client-common.c
src/login-common/client-common.h
src/login-common/sasl-server.c

index 44fc6926ced9db4a0321ee57a65933d3523d6fde..0381fa80a58ea2b86af5e5633e9a6c49e6148b1e 100644 (file)
@@ -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);
 }
index 85d9147468583dbb61c3b73c5063225110102597..4b7727a1f234d3de174a56876ce9f8f4dc00bec2 100644 (file)
@@ -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;
index 1da72861c694867b99c59c3f9246a07b691637c6..a8d6584be33b1bbb57f885f2f6d489400ff1fe78 100644 (file)
@@ -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++) {