Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5807:ec09ad1d017f HEAD
mailbox_list_iter_next() returns now const pointer.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 27 Jun 2007 17:00:32 +0300 |
parents | 3704fe78f2f9 |
children | 45735dd11f17 |
files | src/imap/cmd-list.c src/lib-storage/list/index-mailbox-list.c src/lib-storage/list/mailbox-list-fs-iter.c src/lib-storage/list/mailbox-list-fs.h src/lib-storage/list/mailbox-list-maildir-iter.c src/lib-storage/list/mailbox-list-maildir.c src/lib-storage/list/mailbox-list-maildir.h src/lib-storage/mailbox-list-private.h src/lib-storage/mailbox-list.c src/lib-storage/mailbox-list.h src/plugins/acl/acl-backend-vfile-acllist.c src/plugins/acl/acl-mailbox-list.c src/plugins/convert/convert-storage.c src/plugins/quota/quota-count.c src/plugins/quota/quota-maildir.c |
diffstat | 15 files changed, 42 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/src/imap/cmd-list.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/imap/cmd-list.c Wed Jun 27 17:00:32 2007 +0300 @@ -106,7 +106,7 @@ static bool list_insert_ns_prefix(string_t *name_str, struct cmd_list_context *ctx, - struct mailbox_info *info) + const struct mailbox_info *info) { if (strcasecmp(info->name, "INBOX") != 0) { /* non-INBOX always has prefix */ @@ -135,7 +135,7 @@ static int list_namespace_mailboxes(struct client *client, struct cmd_list_context *ctx) { - struct mailbox_info *info; + const struct mailbox_info *info; const char *name; string_t *str, *name_str; int ret = 0;
--- a/src/lib-storage/list/index-mailbox-list.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/list/index-mailbox-list.c Wed Jun 27 17:00:32 2007 +0300 @@ -211,7 +211,7 @@ (ctx)->recurse_level >= 0) static int iter_next_nonsync(struct index_mailbox_list_iterate_context *ctx, - struct mailbox_info **info_r) + const struct mailbox_info **info_r) { struct index_mailbox_list *ilist = INDEX_LIST_CONTEXT(ctx->ctx.list); struct mailbox_list_index_info iinfo; @@ -294,13 +294,13 @@ return &ctx->info; } -static struct mailbox_info * +static const struct mailbox_info * index_mailbox_list_iter_next(struct mailbox_list_iterate_context *_ctx) { struct index_mailbox_list_iterate_context *ctx = (struct index_mailbox_list_iterate_context *)_ctx; struct index_mailbox_list *ilist = INDEX_LIST_CONTEXT(_ctx->list); - struct mailbox_info *info; + const struct mailbox_info *info; uint32_t seq, flags; enum imap_match_result match;
--- a/src/lib-storage/list/mailbox-list-fs-iter.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/list/mailbox-list-fs-iter.c Wed Jun 27 17:00:32 2007 +0300 @@ -25,16 +25,19 @@ bool inbox_found, inbox_listed; enum mailbox_info_flags inbox_flags; - struct mailbox_info *(*next)(struct fs_list_iterate_context *ctx); + const struct mailbox_info *(*next)(struct fs_list_iterate_context *ctx); pool_t info_pool; struct mailbox_info info; struct list_dir_context *dir; }; -static struct mailbox_info *fs_list_subs(struct fs_list_iterate_context *ctx); -static struct mailbox_info *fs_list_path(struct fs_list_iterate_context *ctx); -static struct mailbox_info *fs_list_next(struct fs_list_iterate_context *ctx); +static const struct mailbox_info * +fs_list_subs(struct fs_list_iterate_context *ctx); +static const struct mailbox_info * +fs_list_path(struct fs_list_iterate_context *ctx); +static const struct mailbox_info * +fs_list_next(struct fs_list_iterate_context *ctx); static const char *mask_get_dir(const char *mask) { @@ -176,7 +179,7 @@ return ret; } -struct mailbox_info * +const struct mailbox_info * fs_list_iter_next(struct mailbox_list_iterate_context *_ctx) { struct fs_list_iterate_context *ctx = @@ -330,7 +333,8 @@ return 0; } -static struct mailbox_info *fs_list_subs(struct fs_list_iterate_context *ctx) +static const struct mailbox_info * +fs_list_subs(struct fs_list_iterate_context *ctx) { const char *name, *path, *p, *dir, *fname; enum imap_match_result match = IMAP_MATCH_NO; @@ -376,7 +380,8 @@ return &ctx->info; } -static struct mailbox_info *fs_list_path(struct fs_list_iterate_context *ctx) +static const struct mailbox_info * +fs_list_path(struct fs_list_iterate_context *ctx) { ctx->next = fs_list_next; @@ -390,7 +395,8 @@ return ctx->next(ctx); } -static struct mailbox_info *fs_list_next(struct fs_list_iterate_context *ctx) +static const struct mailbox_info * +fs_list_next(struct fs_list_iterate_context *ctx) { struct list_dir_context *dir; struct dirent *d;
--- a/src/lib-storage/list/mailbox-list-fs.h Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/list/mailbox-list-fs.h Wed Jun 27 17:00:32 2007 +0300 @@ -17,7 +17,7 @@ fs_list_iter_init(struct mailbox_list *_list, const char *mask, enum mailbox_list_iter_flags flags); int fs_list_iter_deinit(struct mailbox_list_iterate_context *ctx); -struct mailbox_info * +const struct mailbox_info * fs_list_iter_next(struct mailbox_list_iterate_context *ctx); #endif
--- a/src/lib-storage/list/mailbox-list-maildir-iter.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/list/mailbox-list-maildir-iter.c Wed Jun 27 17:00:32 2007 +0300 @@ -295,7 +295,7 @@ return ret; } -struct mailbox_info * +const struct mailbox_info * maildir_list_iter_next(struct mailbox_list_iterate_context *_ctx) { struct maildir_list_iterate_context *ctx =
--- a/src/lib-storage/list/mailbox-list-maildir.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/list/mailbox-list-maildir.c Wed Jun 27 17:00:32 2007 +0300 @@ -273,7 +273,7 @@ const char *oldname, const char *newname) { struct mailbox_list_iterate_context *iter; - struct mailbox_info *info; + const struct mailbox_info *info; ARRAY_DEFINE(names_arr, const char *); const char *mask, *oldpath, *newpath, *old_listname, *new_listname; const char *const *names;
--- a/src/lib-storage/list/mailbox-list-maildir.h Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/list/mailbox-list-maildir.h Wed Jun 27 17:00:32 2007 +0300 @@ -17,7 +17,7 @@ maildir_list_iter_init(struct mailbox_list *_list, const char *mask, enum mailbox_list_iter_flags flags); int maildir_list_iter_deinit(struct mailbox_list_iterate_context *ctx); -struct mailbox_info * +const struct mailbox_info * maildir_list_iter_next(struct mailbox_list_iterate_context *ctx); #endif
--- a/src/lib-storage/mailbox-list-private.h Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/mailbox-list-private.h Wed Jun 27 17:00:32 2007 +0300 @@ -29,7 +29,7 @@ struct mailbox_list_iterate_context * (*iter_init)(struct mailbox_list *list, const char *mask, enum mailbox_list_iter_flags flags); - struct mailbox_info * + const struct mailbox_info * (*iter_next)(struct mailbox_list_iterate_context *ctx); int (*iter_deinit)(struct mailbox_list_iterate_context *ctx);
--- a/src/lib-storage/mailbox-list.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/mailbox-list.c Wed Jun 27 17:00:32 2007 +0300 @@ -284,7 +284,7 @@ return list->v.iter_init(list, mask, flags); } -struct mailbox_info * +const struct mailbox_info * mailbox_list_iter_next(struct mailbox_list_iterate_context *ctx) { return ctx->list->v.iter_next(ctx);
--- a/src/lib-storage/mailbox-list.h Wed Jun 27 16:51:59 2007 +0300 +++ b/src/lib-storage/mailbox-list.h Wed Jun 27 17:00:32 2007 +0300 @@ -152,7 +152,7 @@ mailbox_list_iter_init(struct mailbox_list *list, const char *mask, enum mailbox_list_iter_flags flags); /* Get next mailbox. Returns the mailbox name */ -struct mailbox_info * +const struct mailbox_info * mailbox_list_iter_next(struct mailbox_list_iterate_context *ctx); /* Deinitialize mailbox list request. Returns FALSE if some error occurred while listing. */
--- a/src/plugins/acl/acl-backend-vfile-acllist.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/plugins/acl/acl-backend-vfile-acllist.c Wed Jun 27 17:00:32 2007 +0300 @@ -180,7 +180,7 @@ struct mailbox_list *list = backend->backend.list; struct mail_namespace *ns; struct mailbox_list_iterate_context *iter; - struct mailbox_info *info; + const struct mailbox_info *info; const char *rootdir, *acllist_path; struct ostream *output; struct stat st;
--- a/src/plugins/acl/acl-mailbox-list.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/plugins/acl/acl-mailbox-list.c Wed Jun 27 17:00:32 2007 +0300 @@ -154,13 +154,13 @@ return &ctx->ctx; } -static struct mailbox_info * +static const struct mailbox_info * acl_mailbox_list_iter_next(struct mailbox_list_iterate_context *_ctx) { struct acl_mailbox_list_iterate_context *ctx = (struct acl_mailbox_list_iterate_context *)_ctx; struct acl_mailbox_list *alist = ACL_LIST_CONTEXT(_ctx->list); - struct mailbox_info *info; + const struct mailbox_info *info; struct mailbox_node *node; int ret; @@ -170,8 +170,8 @@ &ctx->info.name); if (node == NULL) return NULL; + ctx->info.flags = node->flags; info = &ctx->info; - info->flags = node->flags; } else { info = alist->module_ctx.super. iter_next(ctx->super_ctx); @@ -198,8 +198,13 @@ if ((ctx->ctx.flags & MAILBOX_LIST_ITER_SUBSCRIBED) != 0) { /* it's subscribed, show it as non-existent */ if ((ctx->ctx.flags & - MAILBOX_LIST_ITER_FAST_FLAGS) == 0) - info->flags = MAILBOX_NONEXISTENT; + MAILBOX_LIST_ITER_FAST_FLAGS) == 0) { + if (info != &ctx->info) { + ctx->info = *info; + info = &ctx->info; + } + ctx->info.flags = MAILBOX_NONEXISTENT; + } return info; }
--- a/src/plugins/convert/convert-storage.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/plugins/convert/convert-storage.c Wed Jun 27 17:00:32 2007 +0300 @@ -128,7 +128,7 @@ static int mailbox_convert_list_item(struct mail_storage *source_storage, struct mail_storage *dest_storage, - struct mailbox_info *info, + const struct mailbox_info *info, struct dotlock *dotlock, const struct convert_settings *set) { @@ -209,7 +209,7 @@ const struct convert_settings *set) { struct mailbox_list_iterate_context *iter; - struct mailbox_info *info; + const struct mailbox_info *info; int ret = 0; iter = mailbox_list_iter_init(mail_storage_get_list(source_storage), @@ -235,7 +235,7 @@ const struct convert_settings *set) { struct mailbox_list_iterate_context *iter; - struct mailbox_info *info; + const struct mailbox_info *info; struct mailbox_list *dest_list; const char *dest_name; int ret = 0;
--- a/src/plugins/quota/quota-count.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/plugins/quota/quota-count.c Wed Jun 27 17:00:32 2007 +0300 @@ -51,7 +51,7 @@ uint64_t *bytes, uint64_t *count) { struct mailbox_list_iterate_context *ctx; - struct mailbox_info *info; + const struct mailbox_info *info; int ret = 0; ctx = mailbox_list_iter_init(storage->list, "*",
--- a/src/plugins/quota/quota-maildir.c Wed Jun 27 16:51:59 2007 +0300 +++ b/src/plugins/quota/quota-maildir.c Wed Jun 27 17:00:32 2007 +0300 @@ -39,7 +39,7 @@ struct maildir_list_context { struct mail_storage *storage; struct mailbox_list_iterate_context *iter; - struct mailbox_info *info; + const struct mailbox_info *info; string_t *path; int state;