]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Set iter_from_index_dir directly on mailbox_list_iterate_context
authorMarkus Valentin <markus.valentin@open-xchange.com>
Mon, 11 Sep 2023 06:55:29 +0000 (08:55 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 24 Nov 2023 21:08:42 +0000 (21:08 +0000)
src/lib-storage/list/mailbox-list-fs-iter.c
src/lib-storage/mailbox-list-private.h

index 4224e671dcfcd73d024f3415f803604a98334cd1..126c061d4a35a7eb58f74d2751d5b07f88120e77 100644 (file)
@@ -257,12 +257,12 @@ fs_list_get_storage_path(struct fs_list_iterate_context *ctx,
        if (*path != '/') {
                /* non-absolute path. add the mailbox root dir as prefix. */
                enum mailbox_list_path_type type =
-                       ctx->ctx.list->set.iter_from_index_dir ?
+                       ctx->ctx.iter_from_index_dir ?
                        MAILBOX_LIST_PATH_TYPE_INDEX :
                        MAILBOX_LIST_PATH_TYPE_MAILBOX;
                if (!mailbox_list_get_root_path(ctx->ctx.list, type, &root))
                        return FALSE;
-               if (ctx->ctx.list->set.iter_from_index_dir &&
+               if (ctx->ctx.iter_from_index_dir &&
                    ctx->ctx.list->set.mailbox_dir_name[0] != '\0') {
                        /* append "mailboxes/" to the index root */
                        root = t_strconcat(root, "/",
@@ -529,6 +529,7 @@ fs_list_iter_init(struct mailbox_list *_list, const char *const *patterns,
        ctx->info_pool = pool_alloconly_create("fs list", 1024);
        ctx->sep = mail_namespace_get_sep(_list->ns);
        ctx->info.ns = _list->ns;
+       ctx->ctx.iter_from_index_dir = ctx->ctx.list->set.iter_from_index_dir;
 
        if (!fs_list_get_valid_patterns(ctx, patterns)) {
                /* we've only invalid patterns (or INBOX). create a glob
index 3ec35859b11864e20d9cb7de03d47325fdd4fa3e..b38ee10198256adb3e66b03b96dbc5cdf39818cf 100644 (file)
@@ -162,6 +162,7 @@ struct mailbox_list_iterate_context {
        enum mailbox_list_iter_flags flags;
        bool failed;
        bool index_iteration;
+       bool iter_from_index_dir;
 
        struct imap_match_glob *glob;
        struct mailbox_list_autocreate_iterate_context *autocreate_ctx;