]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mail_user_set_get_driver_settings() - Add set_parser parameter
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sun, 27 Feb 2022 21:05:07 +0000 (22:05 +0100)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 30 Nov 2022 12:39:58 +0000 (14:39 +0200)
This is in preperation for the next commit that uses it.

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 f4d19719ce2f9456c8b1015939f7757b02c8b54c..e5a4a62df1ebb5d324b5b740705256919489c903 100644 (file)
@@ -94,7 +94,8 @@ static int imapc_list_init(struct mailbox_list *_list, const char **error_r)
 {
        struct imapc_mailbox_list *list = (struct imapc_mailbox_list *)_list;
 
-       list->set = mail_user_set_get_driver_settings(_list->ns->user->set_info,
+       list->set = mail_user_set_get_driver_settings(_list->ns->user->set_parser,
+                                                     _list->ns->user->set_info,
                                                      _list->ns->user_set,
                                                      imapc_get_setting_parser_info());
        if (imapc_storage_client_create(_list->ns, list->set, _list->mail_set,
index 09c0b5c58a82271fb733c10116c4b675dd85d2cc..a4a3bdcdc8601a30723494da0c803382f8919763 100644 (file)
@@ -98,8 +98,8 @@ int mail_namespace_alloc(struct mail_user *user,
        ns->set = ns_set;
        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_setting_parser_info);
+       ns->mail_set = mail_user_set_get_driver_settings(user->set_parser,
+               user->set_info, ns->user_set, &mail_storage_setting_parser_info);
        i_array_init(&ns->all_storages, 2);
 
        if (strcmp(ns_set->type, "private") == 0) {
index 5983b66af20507a1e71c34181a999beb875ca58b..a67dcd97f75765084cc96f9d60a8f997858df77a 100644 (file)
@@ -107,13 +107,14 @@ mail_storage_service_var_expand(struct mail_storage_service_ctx *ctx,
                                const char **error_r);
 
 static bool
-mail_user_set_get_mail_debug(const struct setting_parser_info *user_info,
+mail_user_set_get_mail_debug(const struct setting_parser_context *set_parser,
+                            const struct setting_parser_info *user_info,
                             const struct mail_user_settings *user_set)
 {
        const struct mail_storage_settings *mail_set;
 
-       mail_set = mail_user_set_get_driver_settings(user_info, user_set,
-                       &mail_storage_setting_parser_info);
+       mail_set = mail_user_set_get_driver_settings(set_parser, user_info,
+                       user_set, &mail_storage_setting_parser_info);
        return mail_set->mail_debug;
 }
 
@@ -1122,13 +1123,14 @@ void mail_storage_service_set_auth_conn(struct mail_storage_service_ctx *ctx,
 
 static void
 mail_storage_service_first_init(struct mail_storage_service_ctx *ctx,
+                               const struct setting_parser_context *set_parser,
                                const struct setting_parser_info *user_info,
                                const struct mail_user_settings *user_set,
                                enum mail_storage_service_flags service_flags)
 {
        enum auth_master_flags flags = 0;
 
-       ctx->debug = mail_user_set_get_mail_debug(user_info, user_set) ||
+       ctx->debug = mail_user_set_get_mail_debug(set_parser, user_info, user_set) ||
                     (service_flags & MAIL_STORAGE_SERVICE_FLAG_DEBUG) != 0;
        if (ctx->debug)
                flags |= AUTH_MASTER_FLAG_DEBUG;
@@ -1140,6 +1142,7 @@ mail_storage_service_first_init(struct mail_storage_service_ctx *ctx,
 
 static int
 mail_storage_service_load_modules(struct mail_storage_service_ctx *ctx,
+                                 const struct setting_parser_context *set_parser,
                                  const struct setting_parser_info *user_info,
                                  const struct mail_user_settings *user_set,
                                  const char **error_r)
@@ -1156,7 +1159,7 @@ mail_storage_service_load_modules(struct mail_storage_service_ctx *ctx,
        mod_set.binary_name = master_service_get_name(ctx->service);
        mod_set.setting_name = "mail_plugins";
        mod_set.require_init_funcs = TRUE;
-       mod_set.debug = mail_user_set_get_mail_debug(user_info, user_set);
+       mod_set.debug = mail_user_set_get_mail_debug(set_parser, user_info, user_set);
 
        return module_dir_try_load_missing(&mail_storage_service_modules,
                                           user_set->mail_plugin_dir,
@@ -1270,9 +1273,9 @@ mail_storage_service_lookup_real(struct mail_storage_service_ctx *ctx,
                mail_storage_service_set_log_prefix(ctx, user_set, NULL, input, NULL);
 
        if (ctx->conn == NULL)
-               mail_storage_service_first_init(ctx, user_info, user_set, flags);
+               mail_storage_service_first_init(ctx, set_parser, user_info, user_set, flags);
        /* load global plugins */
-       if (mail_storage_service_load_modules(ctx, user_info, user_set, error_r) < 0) {
+       if (mail_storage_service_load_modules(ctx, set_parser, user_info, user_set, error_r) < 0) {
                pool_unref(&user_pool);
                return -1;
        }
@@ -1380,7 +1383,8 @@ mail_storage_service_lookup_real(struct mail_storage_service_ctx *ctx,
 
        /* load per-user plugins */
        if (ret > 0) {
-               if (mail_storage_service_load_modules(ctx, user_info,
+               if (mail_storage_service_load_modules(ctx, user->set_parser,
+                                                     user_info,
                                                      user->user_set,
                                                      error_r) < 0) {
                        ret = -2;
@@ -1683,7 +1687,7 @@ void mail_storage_service_init_settings(struct mail_storage_service_ctx *ctx,
        user_set = settings_parser_get_root_set(set_parser,
                                                &mail_user_setting_parser_info);
 
-       mail_storage_service_first_init(ctx, user_info, user_set, ctx->flags);
+       mail_storage_service_first_init(ctx, set_parser, user_info, user_set, ctx->flags);
        pool_unref(&temp_pool);
 }
 
@@ -1766,7 +1770,7 @@ void *mail_storage_service_user_get_set(struct mail_storage_service_user *user,
 const struct mail_storage_settings *
 mail_storage_service_user_get_mail_set(struct mail_storage_service_user *user)
 {
-       return mail_user_set_get_driver_settings(
+       return mail_user_set_get_driver_settings(user->set_parser,
                                user->user_info, user->user_set,
                                &mail_storage_setting_parser_info);
 }
index 6ae5d1673cc7ae025bfc69f958841af44b995687..acb879db30a3da4ea40734a2a435f465efa99b5b 100644 (file)
@@ -349,7 +349,8 @@ const struct setting_parser_info mail_user_setting_parser_info = {
 };
 
 const void *
-mail_user_set_get_driver_settings(const struct setting_parser_info *base_info,
+mail_user_set_get_driver_settings(const struct setting_parser_context *set_parser ATTR_UNUSED,
+                                 const struct setting_parser_info *base_info,
                                  const struct mail_user_settings *set,
                                  const struct setting_parser_info *info)
 {
@@ -366,14 +367,16 @@ mail_user_set_get_driver_settings(const struct setting_parser_info *base_info,
 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,
+       return mail_user_set_get_driver_settings(user->set_parser,
+                                                user->set_info, user->set,
                &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,
+       return mail_user_set_get_driver_settings(storage->user->set_parser,
+               storage->user->set_info,
                ns->user_set, storage->v.get_setting_parser_info());
 }
 
index e2f48ad6ea52970758cc80b8ba9acd3afa7c5d18..a056d0d9b3629dc0dbe5a5888fc5ef4ec9747aa9 100644 (file)
@@ -11,6 +11,7 @@ struct mail_namespace;
 struct mail_storage;
 struct message_address;
 struct smtp_address;
+struct setting_parser_context;
 
 struct mail_storage_settings {
        const char *mail_location;
@@ -152,7 +153,8 @@ 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 *base_info,
+mail_user_set_get_driver_settings(const struct setting_parser_context *set_parser,
+                                 const struct setting_parser_info *base_info,
                                  const struct mail_user_settings *set,
                                  const struct setting_parser_info *info);
 
index b751cde2cc4ed27851e7f23bbe746a464b44c08b..90f0d3fc2486a37c95240156a48623eee5edc430 100644 (file)
@@ -437,8 +437,9 @@ const char *mailbox_list_get_unexpanded_path(struct mailbox_list *list,
        location++;
 
        if (*location == '\0') {
-               mail_set = mail_user_set_get_driver_settings(user->set_info,
-                       user->unexpanded_set, &mail_storage_setting_parser_info);
+               mail_set = mail_user_set_get_driver_settings(user->set_parser,
+                       user->set_info, user->unexpanded_set,
+                       &mail_storage_setting_parser_info);
                i_assert(mail_set != NULL);
                location = mail_set->mail_location;
                if (*location == SETTING_STRVAR_EXPANDED[0])