From: Timo Sirainen Date: Fri, 20 Sep 2013 23:55:27 +0000 (+0300) Subject: imapc: Don't log unnecessary errors at deinit about aborted hiearchy separator lookup. X-Git-Tag: 2.2.6~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4f2fa2e5f5a27e1d59dd38fbbf38e420e006596d;p=thirdparty%2Fdovecot%2Fcore.git imapc: Don't log unnecessary errors at deinit about aborted hiearchy separator lookup. The lookup is done asynchronously at startup. It doesn't matter if we never get around to finishing it. --- diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index 983fd20ce4..487e633532 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -268,7 +268,7 @@ static void imapc_storage_sep_callback(const struct imapc_command_reply *reply, imapc_list_sep_verify(list); else if (reply->state == IMAPC_COMMAND_STATE_NO) imapc_list_copy_error_from_reply(list, MAIL_ERROR_PARAMS, reply); - else { + else if (!list->list.ns->user->deinitializing) { mailbox_list_set_critical(&list->list, "imapc: Command failed: %s", reply->text_full); } diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index ed10fc9a9f..52f45476c7 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -156,6 +156,8 @@ void mail_user_unref(struct mail_user **_user) return; } + user->deinitializing = TRUE; + /* call deinit() with refcount=1, otherwise we may assert-crash in mail_user_ref() that is called by some deinit() handler. */ user->v.deinit(user); diff --git a/src/lib-storage/mail-user.h b/src/lib-storage/mail-user.h index 5ac198ede0..fcc2162559 100644 --- a/src/lib-storage/mail-user.h +++ b/src/lib-storage/mail-user.h @@ -68,6 +68,8 @@ struct mail_user { unsigned int dsyncing:1; /* Failed to create attribute dict, don't try again */ unsigned int attr_dict_failed:1; + /* We're deinitializing the user */ + unsigned int deinitializing:1; }; struct mail_user_module_register {