]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: Add mail_namespace_get_driver_settings() and use it.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 14 Nov 2016 21:43:07 +0000 (22:43 +0100)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 18 Nov 2016 11:55:49 +0000 (13:55 +0200)
It obsoletes mail_storage_get_driver_settings().

src/lib-storage/index/dbox-multi/mdbox-storage.c
src/lib-storage/index/imapc/imapc-storage.c
src/lib-storage/index/maildir/maildir-storage.c
src/lib-storage/index/mbox/mbox-storage.c
src/lib-storage/index/pop3c/pop3c-storage.c
src/lib-storage/mail-storage-settings.c
src/lib-storage/mail-storage-settings.h

index 91e6fa3ce87e0f0e9e19c1b528e6577903c7c6a9..7e0b176f68d06e21838084ceecbede6525d3743d 100644 (file)
@@ -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') {
index 99dd80734ea3310d6fc82949d785ca574fdba03b..6432c1e2eaece5492f3eaf8bc9aec76177eeb5e0 100644 (file)
@@ -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,
index c932c3ae6ed0e224880671c44153382311d3daa2..e294d270ba825b4ef7a34ba5c1671b1df4cd6cdd 100644 (file)
@@ -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);
index 06539c23d6c5f6610363d3e160487cd12d7c2bf3..011714fb7bbb5509c597f94ccf3880f69f856cee 100644 (file)
@@ -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') {
index 19e10a5b408200c804f31bbe4573bd9c6e487a65..cad4549ee8630761bf0b498fb829734e8a640a32 100644 (file)
@@ -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;
index d1998fa0566c8cf8183f4d550e20dc8110da3700..8562d8d7a33aba711ce539bda179dc9152a659e9 100644 (file)
@@ -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)
 {
index 152872fc6b0962dbae8c6ff51567c8f8850b4301..cbed4fd8503e82db29d775099df54f21d4d70eb8 100644 (file)
@@ -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 *