]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
layout=index: Fixed listing subscriptions.
authorTimo Sirainen <tss@iki.fi>
Thu, 18 Apr 2013 15:49:55 +0000 (18:49 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 18 Apr 2013 15:49:55 +0000 (18:49 +0300)
src/lib-storage/list/mailbox-list-index-backend.c

index b4eb0863f832aeb371f68dfe803c41646bc52f3e..e9e4e03fc35bc00f0686b62d51baf817d7310d39 100644 (file)
@@ -613,12 +613,17 @@ index_list_rename_mailbox(struct mailbox_list *_oldlist, const char *oldname,
 
 static struct mailbox_list_iterate_context *
 index_list_iter_init(struct mailbox_list *list,
-                    const char *const *patterns ATTR_UNUSED,
+                    const char *const *patterns,
                     enum mailbox_list_iter_flags flags)
 {
        struct mailbox_list_iterate_context *ctx;
        pool_t pool;
 
+       if ((flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) != 0) {
+               return mailbox_list_subscriptions_iter_init(list, patterns,
+                                                           flags);
+       }
+
        pool = pool_alloconly_create("mailbox list index backend iter", 1024);
        ctx = p_new(pool, struct mailbox_list_iterate_context, 1);
        ctx->pool = pool;
@@ -629,13 +634,17 @@ index_list_iter_init(struct mailbox_list *list,
 }
 
 static const struct mailbox_info *
-index_list_iter_next(struct mailbox_list_iterate_context *ctx ATTR_UNUSED)
+index_list_iter_next(struct mailbox_list_iterate_context *ctx)
 {
+       if ((ctx->flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) != 0)
+               return mailbox_list_subscriptions_iter_next(ctx);
        return NULL;
 }
 
 static int index_list_iter_deinit(struct mailbox_list_iterate_context *ctx)
 {
+       if ((ctx->flags & MAILBOX_LIST_ITER_SELECT_SUBSCRIBED) != 0)
+               return mailbox_list_subscriptions_iter_deinit(ctx);
        pool_unref(&ctx->pool);
        return 0;
 }