changeset 6055:437dce5162c5 HEAD

If we're only listing subscriptions without flags, ignore mailbox indexes.
author Timo Sirainen <tss@iki.fi>
date Wed, 18 Jul 2007 01:57:45 +0300
parents d0787ca97a0c
children b06dfb878783
files src/lib-storage/list/index-mailbox-list.c
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/list/index-mailbox-list.c	Wed Jul 18 01:45:34 2007 +0300
+++ b/src/lib-storage/list/index-mailbox-list.c	Wed Jul 18 01:57:45 2007 +0300
@@ -117,13 +117,18 @@
 	struct index_mailbox_list_iterate_context *ctx;
 	enum mailbox_list_sync_flags sync_flags;
 	const char *prefix, *cur_prefix, *const *tmp, *tmp_patterns[2];
+	enum mailbox_list_iter_flags subs_flags;
 	int cur_recurse_level;
 
 	ctx = i_new(struct index_mailbox_list_iterate_context, 1);
 	ctx->ctx.list = list;
 	ctx->ctx.flags = flags;
 
-	if ((flags & MAILBOX_LIST_ITER_RAW_LIST) != 0) {
+	subs_flags = MAILBOX_LIST_ITER_SELECT_SUBSCRIBED |
+		MAILBOX_LIST_ITER_RETURN_NO_FLAGS;
+	if ((flags & MAILBOX_LIST_ITER_RAW_LIST) != 0 ||
+	    (flags & (subs_flags |
+		      MAILBOX_LIST_ITER_RETURN_CHILDREN)) == subs_flags) {
 		/* Ignore indexes completely */
 		ctx->backend_ctx = ilist->module_ctx.super.
 			iter_init(list, patterns, flags);