]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mail_user_set_get_driver_settings() - Lookup settings via info struct
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sun, 27 Feb 2022 20:46:26 +0000 (21:46 +0100)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 30 Nov 2022 12:39:58 +0000 (14:39 +0200)
src/lib-storage/index/imapc/imapc-list.c
src/lib-storage/mail-namespace.c
src/lib-storage/mail-storage-service.c
src/lib-storage/mail-storage-settings.c
src/lib-storage/mail-storage-settings.h
src/lib-storage/mailbox-list.c

index 0272c6c4381da0703fa15a69a9a10318f4555a74..f4d19719ce2f9456c8b1015939f7757b02c8b54c 100644 (file)
@@ -96,7 +96,7 @@ static int imapc_list_init(struct mailbox_list *_list, const char **error_r)
 
        list->set = mail_user_set_get_driver_settings(_list->ns->user->set_info,
                                                      _list->ns->user_set,
-                                                     IMAPC_STORAGE_NAME);
+                                                     imapc_get_setting_parser_info());
        if (imapc_storage_client_create(_list->ns, list->set, _list->mail_set,
                                        &list->client, error_r) < 0)
                return -1;
index 30a936128c76d012d1de4eedcc1d321c6dcad198..09c0b5c58a82271fb733c10116c4b675dd85d2cc 100644 (file)
@@ -99,7 +99,7 @@ int mail_namespace_alloc(struct mail_user *user,
        ns->unexpanded_set = unexpanded_set;
        ns->user_set = user_all_settings;
        ns->mail_set = mail_user_set_get_driver_settings(user->set_info,
-                               ns->user_set, MAIL_STORAGE_SET_DRIVER_NAME);
+                               ns->user_set, &mail_storage_setting_parser_info);
        i_array_init(&ns->all_storages, 2);
 
        if (strcmp(ns_set->type, "private") == 0) {
index 95e27ec8fabccfd02a602b304907ded0f30c03a3..5983b66af20507a1e71c34181a999beb875ca58b 100644 (file)
@@ -113,7 +113,7 @@ mail_user_set_get_mail_debug(const struct setting_parser_info *user_info,
        const struct mail_storage_settings *mail_set;
 
        mail_set = mail_user_set_get_driver_settings(user_info, user_set,
-                                               MAIL_STORAGE_SET_DRIVER_NAME);
+                       &mail_storage_setting_parser_info);
        return mail_set->mail_debug;
 }
 
@@ -1768,7 +1768,7 @@ mail_storage_service_user_get_mail_set(struct mail_storage_service_user *user)
 {
        return mail_user_set_get_driver_settings(
                                user->user_info, user->user_set,
-                               MAIL_STORAGE_SET_DRIVER_NAME);
+                               &mail_storage_setting_parser_info);
 }
 
 const struct mail_storage_service_input *
index 5cba214b53a72dc9fa7b14c8f2a7afa95bdc1795..6ae5d1673cc7ae025bfc69f958841af44b995687 100644 (file)
@@ -349,16 +349,16 @@ const struct setting_parser_info mail_user_setting_parser_info = {
 };
 
 const void *
-mail_user_set_get_driver_settings(const struct setting_parser_info *info,
+mail_user_set_get_driver_settings(const struct setting_parser_info *base_info,
                                  const struct mail_user_settings *set,
-                                 const char *driver)
+                                 const struct setting_parser_info *info)
 {
        const void *dset;
 
-       dset = settings_find_dynamic(info, set, driver);
+       dset = settings_find_dynamic_by_info(base_info, set, info);
        if (dset == NULL) {
                i_panic("Default settings not found for storage driver %s",
-                       driver);
+                       info->module_name);
        }
        return dset;
 }
@@ -367,14 +367,14 @@ const struct mail_storage_settings *
 mail_user_set_get_storage_set(struct mail_user *user)
 {
        return mail_user_set_get_driver_settings(user->set_info, user->set,
-                                                MAIL_STORAGE_SET_DRIVER_NAME);
+               &mail_storage_setting_parser_info);
 }
 
 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);
+               ns->user_set, storage->v.get_setting_parser_info());
 }
 
 const struct dynamic_settings_parser *
index 9dc8f5d82c1c7639dce04f42a6cd712949f2d3e3..e2f48ad6ea52970758cc80b8ba9acd3afa7c5d18 100644 (file)
@@ -152,9 +152,9 @@ extern const struct mailbox_settings mailbox_default_settings;
 struct ssl_iostream_settings;
 
 const void *
-mail_user_set_get_driver_settings(const struct setting_parser_info *info,
+mail_user_set_get_driver_settings(const struct setting_parser_info *base_info,
                                  const struct mail_user_settings *set,
-                                 const char *driver);
+                                 const struct setting_parser_info *info);
 
 const struct mail_storage_settings *
 mail_user_set_get_storage_set(struct mail_user *user);
index c68475ff3e705cf74ce40d030fb27a9c2341c317..b751cde2cc4ed27851e7f23bbe746a464b44c08b 100644 (file)
@@ -438,7 +438,7 @@ const char *mailbox_list_get_unexpanded_path(struct mailbox_list *list,
 
        if (*location == '\0') {
                mail_set = mail_user_set_get_driver_settings(user->set_info,
-                       user->unexpanded_set, MAIL_STORAGE_SET_DRIVER_NAME);
+                       user->unexpanded_set, &mail_storage_setting_parser_info);
                i_assert(mail_set != NULL);
                location = mail_set->mail_location;
                if (*location == SETTING_STRVAR_EXPANDED[0])