]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Do not clobber error with imapc
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 5 Apr 2017 09:48:31 +0000 (12:48 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Thu, 6 Apr 2017 17:22:41 +0000 (20:22 +0300)
src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/index/imapc/imapc-storage.c

index ac999d83f14868b5a019b06adb138a9e6f326a01..302c8328f34ae94c56d5c6bf40407e32b326e6a9 100644 (file)
@@ -552,6 +552,8 @@ static int imapc_list_refresh(struct imapc_mailbox_list *list)
        struct mailbox_node *node;
        const char *pattern;
 
+       if (list->client->auth_failed)
+               return -1;
        if (list->root_sep_lookup_failed) {
                mailbox_list_set_internal_error(&list->list);
                return -1;
index 8b005c25b1d420afd21113727c937f52faee7087..3680cdf6ad3c177aa74add78319fd4452978c462 100644 (file)
@@ -500,6 +500,12 @@ imapc_mailbox_exists(struct mailbox *box, bool auto_boxes ATTR_UNUSED,
 {
        enum mailbox_info_flags flags;
 
+       struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)box->list;
+
+       if (list->client->auth_failed) {
+               mail_storage_copy_list_error(box->storage, box->list);
+               return -1;
+       }
        if (imapc_list_get_mailbox_flags(box->list, box->name, &flags) < 0) {
                mail_storage_copy_list_error(box->storage, box->list);
                return -1;
@@ -623,7 +629,6 @@ int imapc_mailbox_select(struct imapc_mailbox *mbox)
 
        /* If authentication failed, don't check again. */
        if (mbox->storage->client->auth_failed) {
-               mail_storage_set_internal_error(&mbox->storage->storage);
                return -1;
        }