dovecot-2.0: lib-storage: Fixed LIST/LSUB with LAYOUT=none.
dovecot at dovecot.org
dovecot at dovecot.org
Mon May 9 17:58:44 EEST 2011
details: http://hg.dovecot.org/dovecot-2.0/rev/78286b1a0a16
changeset: 12776:78286b1a0a16
user: Timo Sirainen <tss at iki.fi>
date: Mon May 09 17:58:37 2011 +0300
description:
lib-storage: Fixed LIST/LSUB with LAYOUT=none.
It shouldn't have listed INBOX if it didn't match the given patterns.
diffstat:
src/lib-storage/list/mailbox-list-none.c | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
diffs (41 lines):
diff -r 622d42376fe0 -r 78286b1a0a16 src/lib-storage/list/mailbox-list-none.c
--- a/src/lib-storage/list/mailbox-list-none.c Mon May 09 17:41:45 2011 +0300
+++ b/src/lib-storage/list/mailbox-list-none.c Mon May 09 17:58:37 2011 +0300
@@ -1,6 +1,7 @@
/* Copyright (c) 2006-2011 Dovecot authors, see the included COPYING file */
#include "lib.h"
+#include "imap-match.h"
#include "mailbox-list-private.h"
#define MAILBOX_LIST_NAME_NONE "none"
@@ -128,19 +129,25 @@
static struct mailbox_list_iterate_context *
none_list_iter_init(struct mailbox_list *list,
- const char *const *patterns ATTR_UNUSED,
+ const char *const *patterns,
enum mailbox_list_iter_flags flags)
{
struct noop_list_iterate_context *ctx;
+ struct imap_match_glob *glob;
ctx = i_new(struct noop_list_iterate_context, 1);
ctx->ctx.list = list;
ctx->ctx.flags = flags;
- if ((list->ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0) {
- ctx->list_inbox = TRUE;
+ if ((list->ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0) T_BEGIN {
ctx->inbox_info.ns = list->ns;
ctx->inbox_info.name = "INBOX";
- }
+
+ glob = imap_match_init_multiple(pool_datastack_create(),
+ patterns, TRUE,
+ list->hierarchy_sep);
+ if (imap_match(glob, "INBOX") == IMAP_MATCH_YES)
+ ctx->list_inbox = TRUE;
+ } T_END;
return &ctx->ctx;
}
More information about the dovecot-cvs
mailing list