From: Timo Sirainen Date: Mon, 10 Apr 2017 13:44:52 +0000 (+0300) Subject: lib-imap-client: Disconnection during LOGIN should still have state=disconnected X-Git-Tag: 2.2.29~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=097c10487fab35afe3425c6a5e8890cd0b218e21;p=thirdparty%2Fdovecot%2Fcore.git lib-imap-client: Disconnection during LOGIN should still have state=disconnected It's not an authentication failure, which would imply that the user or password was wrong. --- diff --git a/src/lib-imap-client/imapc-client.h b/src/lib-imap-client/imapc-client.h index 08863f25b4..b07e4f057a 100644 --- a/src/lib-imap-client/imapc-client.h +++ b/src/lib-imap-client/imapc-client.h @@ -10,7 +10,9 @@ enum imapc_command_state { IMAPC_COMMAND_STATE_OK, IMAPC_COMMAND_STATE_NO, IMAPC_COMMAND_STATE_BAD, + /* Authentication to IMAP server failed (NO or BAD) */ IMAPC_COMMAND_STATE_AUTH_FAILED, + /* Client was unexpectedly disconnected. */ IMAPC_COMMAND_STATE_DISCONNECTED }; diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-client/imapc-connection.c index 37fbf0748d..df9d4d7d94 100644 --- a/src/lib-imap-client/imapc-connection.c +++ b/src/lib-imap-client/imapc-connection.c @@ -164,7 +164,9 @@ imapc_auth_failed(struct imapc_connection *conn, const struct imapc_command_repl const char *error) { struct imapc_command_reply reply = *_reply; - reply.state = IMAPC_COMMAND_STATE_AUTH_FAILED; + + if (reply.state != IMAPC_COMMAND_STATE_DISCONNECTED) + reply.state = IMAPC_COMMAND_STATE_AUTH_FAILED; reply.text_without_resp = reply.text_full = t_strdup_printf("Authentication failed: %s", error); i_error("imapc(%s): %s", conn->name, reply.text_full);