From: Timo Sirainen Date: Mon, 14 Nov 2016 21:43:07 +0000 (+0100) Subject: lib-storage: Add mail_namespace_get_driver_settings() and use it. X-Git-Tag: 2.2.27~116 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0343cb7aba0591ba5aa0569d0eb8171e7837693;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Add mail_namespace_get_driver_settings() and use it. It obsoletes mail_storage_get_driver_settings(). --- diff --git a/src/lib-storage/index/dbox-multi/mdbox-storage.c b/src/lib-storage/index/dbox-multi/mdbox-storage.c index 91e6fa3ce8..7e0b176f68 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-storage.c +++ b/src/lib-storage/index/dbox-multi/mdbox-storage.c @@ -40,7 +40,7 @@ int mdbox_storage_create(struct mail_storage *_storage, struct mdbox_storage *storage = (struct mdbox_storage *)_storage; const char *dir; - storage->set = mail_storage_get_driver_settings(_storage); + storage->set = mail_namespace_get_driver_settings(ns, _storage); storage->preallocate_space = storage->set->mdbox_preallocate_space; if (*ns->list->set.mailbox_dir_name == '\0') { diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 99dd80734e..6432c1e2ea 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -348,7 +348,7 @@ imapc_storage_create(struct mail_storage *_storage, struct imapc_storage *storage = (struct imapc_storage *)_storage; struct imapc_mailbox_list *imapc_list = NULL; - storage->set = mail_storage_get_driver_settings(_storage); + storage->set = mail_namespace_get_driver_settings(ns, _storage); /* serialize all the settings */ _storage->unique_root_dir = p_strdup_printf(_storage->pool, diff --git a/src/lib-storage/index/maildir/maildir-storage.c b/src/lib-storage/index/maildir/maildir-storage.c index c932c3ae6e..e294d270ba 100644 --- a/src/lib-storage/index/maildir/maildir-storage.c +++ b/src/lib-storage/index/maildir/maildir-storage.c @@ -51,7 +51,7 @@ maildir_storage_create(struct mail_storage *_storage, struct mail_namespace *ns, struct mailbox_list *list = ns->list; const char *dir; - storage->set = mail_storage_get_driver_settings(_storage); + storage->set = mail_namespace_get_driver_settings(ns, _storage); storage->temp_prefix = p_strdup(_storage->pool, mailbox_list_get_temp_prefix(list)); @@ -604,7 +604,7 @@ static void maildir_storage_add_list(struct mail_storage *storage, mlist = p_new(list->pool, struct maildir_mailbox_list_context, 1); mlist->module_ctx.super = list->v; - mlist->set = mail_storage_get_driver_settings(storage); + mlist->set = mail_namespace_get_driver_settings(list->ns, storage); list->v.is_internal_name = maildir_is_internal_name; MODULE_CONTEXT_SET(list, maildir_mailbox_list_module, mlist); diff --git a/src/lib-storage/index/mbox/mbox-storage.c b/src/lib-storage/index/mbox/mbox-storage.c index 06539c23d6..011714fb7b 100644 --- a/src/lib-storage/index/mbox/mbox-storage.c +++ b/src/lib-storage/index/mbox/mbox-storage.c @@ -151,7 +151,7 @@ mbox_storage_create(struct mail_storage *_storage, struct mail_namespace *ns, return -1; } - storage->set = mail_storage_get_driver_settings(_storage); + storage->set = mail_namespace_get_driver_settings(ns, _storage); if (mailbox_list_get_root_path(ns->list, MAILBOX_LIST_PATH_TYPE_INDEX, &dir)) { _storage->temp_path_prefix = p_strconcat(_storage->pool, dir, @@ -706,7 +706,7 @@ static void mbox_storage_add_list(struct mail_storage *storage, mlist = p_new(list->pool, struct mbox_mailbox_list, 1); mlist->module_ctx.super = list->v; - mlist->set = mail_storage_get_driver_settings(storage); + mlist->set = mail_namespace_get_driver_settings(list->ns, storage); if (strcmp(list->name, MAILBOX_LIST_NAME_FS) == 0 && *list->set.maildir_name == '\0') { diff --git a/src/lib-storage/index/pop3c/pop3c-storage.c b/src/lib-storage/index/pop3c/pop3c-storage.c index 19e10a5b40..cad4549ee8 100644 --- a/src/lib-storage/index/pop3c/pop3c-storage.c +++ b/src/lib-storage/index/pop3c/pop3c-storage.c @@ -31,12 +31,12 @@ static struct mail_storage *pop3c_storage_alloc(void) static int pop3c_storage_create(struct mail_storage *_storage, - struct mail_namespace *ns ATTR_UNUSED, + struct mail_namespace *ns, const char **error_r) { struct pop3c_storage *storage = (struct pop3c_storage *)_storage; - storage->set = mail_storage_get_driver_settings(_storage); + storage->set = mail_namespace_get_driver_settings(ns, _storage); if (storage->set->pop3c_host[0] == '\0') { *error_r = "missing pop3c_host"; return -1; diff --git a/src/lib-storage/mail-storage-settings.c b/src/lib-storage/mail-storage-settings.c index d1998fa056..8562d8d7a3 100644 --- a/src/lib-storage/mail-storage-settings.c +++ b/src/lib-storage/mail-storage-settings.c @@ -326,6 +326,13 @@ const void *mail_storage_get_driver_settings(struct mail_storage *storage) storage->name); } +const void *mail_namespace_get_driver_settings(struct mail_namespace *ns, + struct mail_storage *storage) +{ + return mail_user_set_get_driver_settings(storage->user->set_info, + ns->user_set, storage->name); +} + const struct dynamic_settings_parser * mail_storage_get_dynamic_parsers(pool_t pool) { diff --git a/src/lib-storage/mail-storage-settings.h b/src/lib-storage/mail-storage-settings.h index 152872fc6b..cbed4fd850 100644 --- a/src/lib-storage/mail-storage-settings.h +++ b/src/lib-storage/mail-storage-settings.h @@ -7,6 +7,7 @@ #define MAIL_STORAGE_SET_DRIVER_NAME "MAIL" struct mail_user; +struct mail_namespace; struct mail_storage; struct mail_storage_settings { @@ -120,8 +121,13 @@ const void * mail_user_set_get_driver_settings(const struct setting_parser_info *info, const struct mail_user_settings *set, const char *driver); + const struct mail_storage_settings * mail_user_set_get_storage_set(struct mail_user *user); +/* Get storage-specific settings, which may be namespace-specific. */ +const void *mail_namespace_get_driver_settings(struct mail_namespace *ns, + struct mail_storage *storage); +/* FIXME: Obsolete - remove in v2.3 */ const void *mail_storage_get_driver_settings(struct mail_storage *storage); const struct dynamic_settings_parser *