From: Markus Valentin Date: Mon, 11 Sep 2023 06:55:29 +0000 (+0200) Subject: lib-storage: Set iter_from_index_dir directly on mailbox_list_iterate_context X-Git-Tag: 2.4.0~1940 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ff018664bc16f4f6cafb8b7fe596f153e64cf2e;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Set iter_from_index_dir directly on mailbox_list_iterate_context --- diff --git a/src/lib-storage/list/mailbox-list-fs-iter.c b/src/lib-storage/list/mailbox-list-fs-iter.c index 4224e671dc..126c061d4a 100644 --- a/src/lib-storage/list/mailbox-list-fs-iter.c +++ b/src/lib-storage/list/mailbox-list-fs-iter.c @@ -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 diff --git a/src/lib-storage/mailbox-list-private.h b/src/lib-storage/mailbox-list-private.h index 3ec35859b1..b38ee10198 100644 --- a/src/lib-storage/mailbox-list-private.h +++ b/src/lib-storage/mailbox-list-private.h @@ -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;