From: Timo Sirainen Date: Thu, 17 Jun 2010 18:50:44 +0000 (+0100) Subject: lib-storage: Fixed getting flags for subscribed mailboxes with non-default namespace... X-Git-Tag: 2.0.rc1~145 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=692f0e338e12048699cc320a3d9169ab13584a4d;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Fixed getting flags for subscribed mailboxes with non-default namespace settings. --HG-- branch : HEAD --- 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,