Mercurial > dovecot > core-2.2
changeset 22712:4914c8247de7
lib-storage: mailbox_list_index - Don't overwrite INBOX's flags with prefix/INBOX's
This made the real INBOX appear as if it was \NoSelect
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 14 Dec 2017 02:11:28 +0200 |
parents | 25d4771ad0fd |
children | cb108f786fb4 |
files | src/lib-storage/list/mailbox-list-index-sync.c |
diffstat | 1 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/list/mailbox-list-index-sync.c Thu Dec 14 02:10:27 2017 +0200 +++ b/src/lib-storage/list/mailbox-list-index-sync.c Thu Dec 14 02:11:28 2017 +0200 @@ -321,12 +321,18 @@ const char *name = mailbox_list_get_storage_name(info->ns->list, info->vname); - seq = mailbox_list_index_sync_name(sync_ctx, name, - &node, &created); - - node->flags = flags | MAILBOX_LIST_INDEX_FLAG_SYNC_EXISTS; - mail_index_update_flags(sync_ctx->trans, seq, - MODIFY_REPLACE, (enum mail_flags)flags); + if (strcmp(name, "INBOX") == 0 && + strcmp(info->vname, "INBOX") != 0 && + (info->ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0) { + /* prefix/INBOX - don't override INBOX with this */ + } else { + seq = mailbox_list_index_sync_name(sync_ctx, name, + &node, &created); + node->flags = flags | MAILBOX_LIST_INDEX_FLAG_SYNC_EXISTS; + mail_index_update_flags(sync_ctx->trans, seq, + MODIFY_REPLACE, + (enum mail_flags)flags); + } } T_END; sync_ctx->syncing_list = FALSE;