diff options
-rw-r--r-- | camel/providers/imapx/camel-imapx-server.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/camel/providers/imapx/camel-imapx-server.c b/camel/providers/imapx/camel-imapx-server.c index dc1606057..d77901cef 100644 --- a/camel/providers/imapx/camel-imapx-server.c +++ b/camel/providers/imapx/camel-imapx-server.c @@ -2935,11 +2935,14 @@ camel_imapx_server_authenticate_sync (CamelIMAPXServer *is, ic = camel_imapx_command_new (is, CAMEL_IMAPX_JOB_LOGIN, "LOGIN %s %s", user, password); } - if (!camel_imapx_server_process_command_sync (is, ic, _("Failed to authenticate"), cancellable, error)) + if (!camel_imapx_server_process_command_sync (is, ic, _("Failed to authenticate"), cancellable, error) && ( + !ic->status || ic->status->result != IMAPX_NO)) result = CAMEL_AUTHENTICATION_ERROR; else if (ic->status->result == IMAPX_OK) result = CAMEL_AUTHENTICATION_ACCEPTED; else if (ic->status->result == IMAPX_NO) { + g_clear_error (error); + if (camel_imapx_store_is_connecting_concurrent_connection (store)) { /* At least one connection succeeded, probably max connection limit set on the server had been reached, thus use special error code |