dovecot-2.2: imapc: Code cleanup: Don't access imapc settings vi...
dovecot at dovecot.org
dovecot at dovecot.org
Wed Jul 10 06:05:30 EEST 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/e45ad5524f1a
changeset: 16585:e45ad5524f1a
user: Timo Sirainen <tss at iki.fi>
date: Wed Jul 10 06:05:20 2013 +0300
description:
imapc: Code cleanup: Don't access imapc settings via storage.
diffstat:
src/lib-storage/index/imapc/imapc-list.c | 40 +++++++++++++++++++------------
src/lib-storage/index/imapc/imapc-list.h | 1 +
2 files changed, 25 insertions(+), 16 deletions(-)
diffs (132 lines):
diff -r 673648c6fb4b -r e45ad5524f1a src/lib-storage/index/imapc/imapc-list.c
--- a/src/lib-storage/index/imapc/imapc-list.c Wed Jul 10 05:57:36 2013 +0300
+++ b/src/lib-storage/index/imapc/imapc-list.c Wed Jul 10 06:05:20 2013 +0300
@@ -56,6 +56,17 @@
return &list->list;
}
+static int
+imapc_list_init(struct mailbox_list *_list, const char **error_r ATTR_UNUSED)
+{
+ struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
+
+ list->set = mail_user_set_get_driver_settings(_list->ns->user->set_info,
+ _list->ns->user->set,
+ IMAPC_STORAGE_NAME);
+ return 0;
+}
+
static void imapc_list_deinit(struct mailbox_list *_list)
{
struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
@@ -205,7 +216,7 @@
imapc_list_get_storage_name(struct mailbox_list *_list, const char *vname)
{
struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
- const char *prefix = list->storage->set->imapc_list_prefix;
+ const char *prefix = list->set->imapc_list_prefix;
const char *storage_name;
storage_name = mailbox_list_default_get_storage_name(_list, vname);
@@ -222,7 +233,7 @@
imapc_list_get_vname(struct mailbox_list *_list, const char *storage_name)
{
struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
- const char *prefix = list->storage->set->imapc_list_prefix;
+ const char *prefix = list->set->imapc_list_prefix;
unsigned int prefix_len;
if (*storage_name == '\0') {
@@ -285,7 +296,7 @@
return NULL;
vname = mailbox_list_get_vname(&list->list, name);
- if (list->storage->set->imapc_list_prefix[0] != '\0') {
+ if (list->set->imapc_list_prefix[0] != '\0') {
/* put back the prefix, so it gets included in the filesystem. */
unsigned int vname_len = strlen(vname);
@@ -301,10 +312,10 @@
}
if (vname[0] == '\0') {
vname = t_strconcat(ns->prefix,
- list->storage->set->imapc_list_prefix, NULL);
+ list->set->imapc_list_prefix, NULL);
} else {
vname = t_strdup_printf("%s%s%c%s", ns->prefix,
- list->storage->set->imapc_list_prefix,
+ list->set->imapc_list_prefix,
ns_sep, vname);
}
}
@@ -366,7 +377,7 @@
struct mailbox_list *fs_list = imapc_list_get_fs(list);
struct mailbox_list_iterate_context *iter;
const struct mailbox_info *info;
- const char *imapc_list_prefix = list->storage->set->imapc_list_prefix;
+ const char *imapc_list_prefix = list->set->imapc_list_prefix;
unsigned int imapc_list_prefix_len = strlen(imapc_list_prefix);
const char *fs_name, *vname;
@@ -417,14 +428,13 @@
if (list->refreshed_mailboxes)
return 0;
- if (*list->storage->set->imapc_list_prefix == '\0')
+ if (*list->set->imapc_list_prefix == '\0')
pattern = "*";
else {
/* list "prefix*" instead of "prefix.*". this may return a bit
more than we want, but we're also interested in the flags
of the prefix itself. */
- pattern = t_strdup_printf("%s*",
- list->storage->set->imapc_list_prefix);
+ pattern = t_strdup_printf("%s*", list->set->imapc_list_prefix);
}
cmd = imapc_list_simple_context_init(&ctx, list);
@@ -440,7 +450,7 @@
imapc_list_prefix doesn't match it */
bool created;
node = mailbox_tree_get(list->mailboxes, "INBOX", &created);
- if (*list->storage->set->imapc_list_prefix != '\0') {
+ if (*list->set->imapc_list_prefix != '\0') {
/* this listing didn't include the INBOX itself, but
might have included its children. make sure there
aren't any extra flags in it (especially
@@ -640,12 +650,10 @@
mailbox_tree_init(mail_namespace_get_sep(_src_list->ns));
cmd = imapc_list_simple_context_init(&ctx, src_list);
- if (*src_list->storage->set->imapc_list_prefix == '\0')
+ if (*src_list->set->imapc_list_prefix == '\0')
pattern = "*";
- else {
- pattern = t_strdup_printf("%s*",
- src_list->storage->set->imapc_list_prefix);
- }
+ else
+ pattern = t_strdup_printf("%s*", src_list->set->imapc_list_prefix);
imapc_command_sendf(cmd, "LSUB \"\" %s", pattern);
imapc_simple_run(&ctx);
@@ -789,7 +797,7 @@
{
imapc_list_alloc,
- NULL,
+ imapc_list_init,
imapc_list_deinit,
NULL,
imapc_list_get_hierarchy_sep,
diff -r 673648c6fb4b -r e45ad5524f1a src/lib-storage/index/imapc/imapc-list.h
--- a/src/lib-storage/index/imapc/imapc-list.h Wed Jul 10 05:57:36 2013 +0300
+++ b/src/lib-storage/index/imapc/imapc-list.h Wed Jul 10 06:05:20 2013 +0300
@@ -9,6 +9,7 @@
struct imapc_mailbox_list {
struct mailbox_list list;
+ const struct imapc_settings *set;
struct imapc_storage *storage;
struct mailbox_list *index_list;
More information about the dovecot-cvs
mailing list