From 692f0e338e12048699cc320a3d9169ab13584a4d Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 17 Jun 2010 19:50:44 +0100 Subject: [PATCH] lib-storage: Fixed getting flags for subscribed mailboxes with non-default namespace settings. --HG-- branch : HEAD --- src/lib-storage/list/mailbox-list-fs-iter.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lib-storage/list/mailbox-list-fs-iter.c b/src/lib-storage/list/mailbox-list-fs-iter.c index 7101fc56d4..7903472cfa 100644 --- a/src/lib-storage/list/mailbox-list-fs-iter.c +++ b/src/lib-storage/list/mailbox-list-fs-iter.c @@ -622,7 +622,7 @@ fs_list_subs(struct fs_list_iterate_context *ctx) { struct mailbox_node *node; enum mailbox_info_flags flags; - const char *path, *dir, *fname, *name; + const char *path, *dir, *fname, *storage_name; unsigned int len; struct stat st; @@ -639,13 +639,16 @@ fs_list_subs(struct fs_list_iterate_context *ctx) return &ctx->info; } + storage_name = (ctx->ctx.flags & MAILBOX_LIST_ITER_VIRTUAL_NAMES) == 0 ? + ctx->info.name : + mail_namespace_get_storage_name(ctx->info.ns, ctx->info.name); + /* if name ends with hierarchy separator, drop the separator */ - name = ctx->info.name; - len = strlen(name); - if (len > 0 && name[len-1] == ctx->info.ns->real_sep) - name = t_strndup(name, len-1); + len = strlen(storage_name); + if (len > 0 && storage_name[len-1] == ctx->info.ns->real_sep) + storage_name = t_strndup(storage_name, len-1); - path = mailbox_list_get_path(ctx->ctx.list, name, + path = mailbox_list_get_path(ctx->ctx.list, storage_name, MAILBOX_LIST_PATH_TYPE_DIR); path_split(path, &dir, &fname); if (ctx->ctx.list->v.get_mailbox_flags(ctx->ctx.list, dir, fname, -- 2.47.3