From: Timo Sirainen Date: Wed, 10 Aug 2011 13:00:45 +0000 (+0300) Subject: lib-storage: Fixes to handling INBOX/ namespace prefix. X-Git-Tag: 2.1.alpha1~136 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08ed4ab71fd2a4e800d9025a736f0f46b771ea90;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fixes to handling INBOX/ namespace prefix. --- diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index 4d5b04e6ea..20f0be8932 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -632,7 +632,8 @@ int mailbox_exists(struct mailbox *box, bool auto_boxes, return 0; } - if (have_listable_namespace_prefix(box->storage->user->namespaces, + if (!box->inbox_user && + have_listable_namespace_prefix(box->storage->user->namespaces, box->vname)) { /* listable namespace prefix always exists */ *existence_r = MAILBOX_EXISTENCE_NOSELECT; diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index 33126b5163..5681163525 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -405,7 +405,7 @@ const char *mailbox_list_default_get_storage_name(struct mailbox_list *list, else if (list->set.escape_char != '\0') storage_name = mailbox_list_escape_name(list, vname); - if (prefix_len > 0) { + if (prefix_len > 0 && strcmp(storage_name, "INBOX") != 0) { /* skip namespace prefix, except if this is INBOX */ if (strncmp(ns->prefix, storage_name, prefix_len) == 0) storage_name += prefix_len; @@ -414,8 +414,8 @@ const char *mailbox_list_default_get_storage_name(struct mailbox_list *list, /* trying to access the namespace prefix itself */ storage_name = ""; } else { - /* it's either INBOX, or we're converting a nonexistent - mailbox name, such as a LIST pattern. */ + /* we're converting a nonexistent mailbox name, + such as a LIST pattern. */ } }