Do not return CAMEL_AUTHENTICATION_REJECTED on runtime errors
authorMilan Crha <mcrha@redhat.com>
Fri, 25 Apr 2014 05:38:42 +0000 (07:38 +0200)
committerMilan Crha <mcrha@redhat.com>
Fri, 25 Apr 2014 05:38:42 +0000 (07:38 +0200)
Returning CAMEL_AUTHENTICATION_REJECTED on runtime errors also means
that a stored password is forgotten and a user is asked for it,
which is eventually not used, because the runtime error can repeat.
The correct return code is CAMEL_AUTHENTICATION_ERROR in this case.

camel/camel-service.c
camel/providers/imapx/camel-imapx-server.c

index 839e409..29579c1 100644 (file)
@@ -2104,12 +2104,12 @@ camel_service_authenticate_sync (CamelService *service,
 
        g_return_val_if_fail (
                CAMEL_IS_SERVICE (service),
-               CAMEL_AUTHENTICATION_REJECTED);
+               CAMEL_AUTHENTICATION_ERROR);
 
        class = CAMEL_SERVICE_GET_CLASS (service);
        g_return_val_if_fail (
                class->authenticate_sync != NULL,
-               CAMEL_AUTHENTICATION_REJECTED);
+               CAMEL_AUTHENTICATION_ERROR);
 
        result = class->authenticate_sync (
                service, mechanism, cancellable, error);
@@ -2227,15 +2227,15 @@ camel_service_authenticate_finish (CamelService *service,
 
        g_return_val_if_fail (
                CAMEL_IS_SERVICE (service),
-               CAMEL_AUTHENTICATION_REJECTED);
+               CAMEL_AUTHENTICATION_ERROR);
        g_return_val_if_fail (
                g_task_is_valid (result, service),
-               CAMEL_AUTHENTICATION_REJECTED);
+               CAMEL_AUTHENTICATION_ERROR);
 
        g_return_val_if_fail (
                g_async_result_is_tagged (
                result, camel_service_authenticate),
-               CAMEL_AUTHENTICATION_REJECTED);
+               CAMEL_AUTHENTICATION_ERROR);
 
        /* XXX A little hackish, but best way to return enum values
         *     from GTask in GLib 2.36.  Recommended by Dan Winship. */
index 3b2855d..d1296db 100644 (file)
@@ -4643,7 +4643,7 @@ camel_imapx_server_authenticate (CamelIMAPXServer *is,
 
        g_return_val_if_fail (
                CAMEL_IS_IMAPX_SERVER (is),
-               CAMEL_AUTHENTICATION_REJECTED);
+               CAMEL_AUTHENTICATION_ERROR);
 
        store = camel_imapx_server_ref_store (is);