]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Support accessing mailboxes in non-private namespaces.
authorTimo Sirainen <tss@iki.fi>
Wed, 1 Sep 2010 17:44:32 +0000 (18:44 +0100)
committerTimo Sirainen <tss@iki.fi>
Wed, 1 Sep 2010 17:44:32 +0000 (18:44 +0100)
The default is still the same as "*", and wildcards won't cross namespace
boundaries so unless the namespace prefix is explicitly used non-private
namespaces are still invisible.

src/doveadm/doveadm-mail-list-iter.c

index c899eac95a7b3b5d2e95283914d471178f3d9505..b58913bb3bc78a8549bce7d34f21536baacfe517 100644 (file)
@@ -57,6 +57,7 @@ doveadm_mail_list_iter_init(struct mail_user *user,
        static const char *all_pattern = "*";
        struct doveadm_mail_list_iter *iter;
        ARRAY_TYPE(const_string) patterns;
+       enum namespace_type ns_mask = NAMESPACE_PRIVATE;
 
        iter = i_new(struct doveadm_mail_list_iter, 1);
        iter->search_args = search_args;
@@ -68,6 +69,7 @@ doveadm_mail_list_iter_init(struct mail_user *user,
                array_append(&patterns, &all_pattern, 1);
        } else {
                iter_flags |= MAILBOX_LIST_ITER_STAR_WITHIN_NS;
+               ns_mask |= NAMESPACE_SHARED | NAMESPACE_PUBLIC;
        }
        (void)array_append_space(&patterns);
 
@@ -75,8 +77,7 @@ doveadm_mail_list_iter_init(struct mail_user *user,
        iter->iter_flags = iter_flags;
        iter->iter = mailbox_list_iter_init_namespaces(user->namespaces,
                                                       array_idx(&patterns, 0),
-                                                      NAMESPACE_PRIVATE,
-                                                      iter_flags);
+                                                      ns_mask, iter_flags);
        return iter;
 }