From: Timo Sirainen Date: Sun, 27 Feb 2022 20:46:26 +0000 (+0100) Subject: lib-storage: mail_user_set_get_driver_settings() - Lookup settings via info struct X-Git-Tag: 2.4.0~3344 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e4301ecac7fca6ffa4e76ee01246ab96174f1ebf;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: mail_user_set_get_driver_settings() - Lookup settings via info struct --- diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index 0272c6c438..f4d19719ce 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -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; diff --git a/src/lib-storage/mail-namespace.c b/src/lib-storage/mail-namespace.c index 30a936128c..09c0b5c58a 100644 --- a/src/lib-storage/mail-namespace.c +++ b/src/lib-storage/mail-namespace.c @@ -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) { diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index 95e27ec8fa..5983b66af2 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -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 * diff --git a/src/lib-storage/mail-storage-settings.c b/src/lib-storage/mail-storage-settings.c index 5cba214b53..6ae5d1673c 100644 --- a/src/lib-storage/mail-storage-settings.c +++ b/src/lib-storage/mail-storage-settings.c @@ -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 * diff --git a/src/lib-storage/mail-storage-settings.h b/src/lib-storage/mail-storage-settings.h index 9dc8f5d82c..e2f48ad6ea 100644 --- a/src/lib-storage/mail-storage-settings.h +++ b/src/lib-storage/mail-storage-settings.h @@ -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); diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index c68475ff3e..b751cde2cc 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -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])