]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Fixes to handling INBOX/ namespace prefix.
authorTimo Sirainen <tss@iki.fi>
Wed, 10 Aug 2011 13:00:45 +0000 (16:00 +0300)
committerTimo Sirainen <tss@iki.fi>
Wed, 10 Aug 2011 13:00:45 +0000 (16:00 +0300)
src/lib-storage/mail-storage.c
src/lib-storage/mailbox-list.c

index 4d5b04e6ea820e6c6f8b94ab31b22ec61a4dcd8f..20f0be8932b90072b94993130daa8618ebcbe5d5 100644 (file)
@@ -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;
index 33126b51639695eb49bfb326ea7498bdde86677b..5681163525769ecb83dd6251709de5f6713efedc 100644 (file)
@@ -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. */
                }
        }