]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lmtp: Duplicate the whole settings parser rather than individual settings structs
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 21 Nov 2022 18:45:21 +0000 (20:45 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 30 Nov 2022 12:39:36 +0000 (14:39 +0200)
This will be needed later on.

src/lmtp/lmtp-client.c
src/lmtp/lmtp-settings.c
src/lmtp/lmtp-settings.h

index 103e4cf4ffeeabc802c009fd220cf54d6e03cacd..7e1199709872d10e772102fde149f1e69623b37b 100644 (file)
@@ -130,7 +130,8 @@ static void client_read_settings(struct client *client, bool ssl)
                                               &set_parser, &error) < 0)
                i_fatal("%s", error);
 
-       lmtp_settings_dup(set_parser, client->pool, &lmtp_set, &lda_set);
+       set_parser = settings_parser_dup(set_parser, client->pool);
+       lmtp_settings_get(set_parser, client->pool, &lmtp_set, &lda_set);
        const struct var_expand_table *tab =
                mail_storage_service_get_var_expand_table(storage_service, &input);
        if (settings_var_expand(&lmtp_setting_parser_info, lmtp_set,
index 7405b1f18b543e0407a2a298066b1a3bbe1d2ff9..a2ff0e39129e0d4e6b7ba32b94d07066a5e20fe6 100644 (file)
@@ -186,7 +186,7 @@ static bool lmtp_settings_check(void *_set, pool_t pool ATTR_UNUSED,
 }
 /* </settings checks> */
 
-void lmtp_settings_dup(const struct setting_parser_context *set_parser,
+void lmtp_settings_get(const struct setting_parser_context *set_parser,
                       pool_t pool,
                       struct lmtp_settings **lmtp_set_r,
                       struct lda_settings **lda_set_r)
@@ -195,12 +195,8 @@ void lmtp_settings_dup(const struct setting_parser_context *set_parser,
 
        *lda_set_r = settings_parser_get_root_set(set_parser,
                                &lda_setting_parser_info);
-       *lda_set_r = settings_dup(&lda_setting_parser_info,
-                                 *lda_set_r, pool);
        *lmtp_set_r = settings_parser_get_root_set(set_parser,
                                &lmtp_setting_parser_info);
-       *lmtp_set_r = settings_dup(&lmtp_setting_parser_info,
-                                  *lmtp_set_r, pool);
        if (!lmtp_settings_check(*lmtp_set_r, pool, &error))
                i_unreached();
 }
index 37cfba499ea0dd6b1001c3f73925d0f155970bda..5a35b489e280f1dd6c30daf96e33a05e0b07191b 100644 (file)
@@ -44,7 +44,7 @@ struct lmtp_settings {
 
 extern const struct setting_parser_info lmtp_setting_parser_info;
 
-void lmtp_settings_dup(const struct setting_parser_context *set_parser,
+void lmtp_settings_get(const struct setting_parser_context *set_parser,
                       pool_t pool,
                       struct lmtp_settings **lmtp_set_r,
                       struct lda_settings **lda_set_r);