From: Aki Tuomi Date: Wed, 5 Apr 2017 09:48:31 +0000 (+0300) Subject: lib-storage: Do not clobber error with imapc X-Git-Tag: 2.2.29.rc1~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7078280c38b515fd8d3313568f01e4444f225626;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Do not clobber error with imapc --- diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index ac999d83f1..302c8328f3 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -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; diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 8b005c25b1..3680cdf6ad 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -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; }