dovecot: mailbox_list_iter_next() returns now const pointer.
dovecot at dovecot.org
dovecot at dovecot.org
Wed Jun 27 20:21:04 EEST 2007
details: http://hg.dovecot.org/dovecot/rev/ec09ad1d017f
changeset: 5807:ec09ad1d017f
user: Timo Sirainen <tss at iki.fi>
date: Wed Jun 27 17:00:32 2007 +0300
description:
mailbox_list_iter_next() returns now const pointer.
diffstat:
15 files changed, 42 insertions(+), 31 deletions(-)
src/imap/cmd-list.c | 4 ++--
src/lib-storage/list/index-mailbox-list.c | 6 +++---
src/lib-storage/list/mailbox-list-fs-iter.c | 22 ++++++++++++++--------
src/lib-storage/list/mailbox-list-fs.h | 2 +-
src/lib-storage/list/mailbox-list-maildir-iter.c | 2 +-
src/lib-storage/list/mailbox-list-maildir.c | 2 +-
src/lib-storage/list/mailbox-list-maildir.h | 2 +-
src/lib-storage/mailbox-list-private.h | 2 +-
src/lib-storage/mailbox-list.c | 2 +-
src/lib-storage/mailbox-list.h | 2 +-
src/plugins/acl/acl-backend-vfile-acllist.c | 2 +-
src/plugins/acl/acl-mailbox-list.c | 15 ++++++++++-----
src/plugins/convert/convert-storage.c | 6 +++---
src/plugins/quota/quota-count.c | 2 +-
src/plugins/quota/quota-maildir.c | 2 +-
diffs (truncated from 310 to 300 lines):
diff -r 3704fe78f2f9 -r ec09ad1d017f src/imap/cmd-list.c
--- 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 @@ list_namespace_inbox(struct client *clie
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
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;
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/list/index-mailbox-list.c
--- 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 @@ index_mailbox_list_info_flags_translate(
(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 @@ mailbox_info_move_to_parent(struct index
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;
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/list/mailbox-list-fs-iter.c
--- 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 @@ struct fs_list_iterate_context {
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 @@ int fs_list_iter_deinit(struct mailbox_l
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 @@ list_file(struct fs_list_iterate_context
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 @@ static struct mailbox_info *fs_list_subs
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 @@ static struct mailbox_info *fs_list_path
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;
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/list/mailbox-list-fs.h
--- 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 *_
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
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/list/mailbox-list-maildir-iter.c
--- 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 @@ int maildir_list_iter_deinit(struct mail
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 =
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/list/mailbox-list-maildir.c
--- 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 @@ static int rename_children(struct mailbo
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;
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/list/mailbox-list-maildir.h
--- 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_li
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
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/mailbox-list-private.h
--- 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_vfuncs {
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);
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/mailbox-list.c
--- 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 @@ mailbox_list_iter_init(struct mailbox_li
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);
diff -r 3704fe78f2f9 -r ec09ad1d017f src/lib-storage/mailbox-list.h
--- 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_li
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. */
diff -r 3704fe78f2f9 -r ec09ad1d017f src/plugins/acl/acl-backend-vfile-acllist.c
--- 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 @@ int acl_backend_vfile_acllist_rebuild(st
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;
diff -r 3704fe78f2f9 -r ec09ad1d017f src/plugins/acl/acl-mailbox-list.c
--- 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 @@ acl_mailbox_list_iter_init(struct mailbo
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 @@ acl_mailbox_list_iter_next(struct mailbo
&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 @@ acl_mailbox_list_iter_next(struct mailbo
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;
}
diff -r 3704fe78f2f9 -r ec09ad1d017f src/plugins/convert/convert-storage.c
--- 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 @@ mailbox_name_convert(struct mail_storage
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 @@ static int mailbox_list_copy(struct mail
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 @@ static int mailbox_list_copy_subscriptio
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;
diff -r 3704fe78f2f9 -r ec09ad1d017f src/plugins/quota/quota-count.c
--- 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 @@ static int quota_count_storage(struct ma
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, "*",
diff -r 3704fe78f2f9 -r ec09ad1d017f src/plugins/quota/quota-maildir.c
--- a/src/plugins/quota/quota-maildir.c Wed Jun 27 16:51:59 2007 +0300
More information about the dovecot-cvs
mailing list