From: Timo Sirainen Date: Mon, 21 Nov 2022 18:45:21 +0000 (+0200) Subject: lmtp: Duplicate the whole settings parser rather than individual settings structs X-Git-Tag: 2.4.0~3361 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8807ff0df48c5a19fec2a1f01dc0dac6d864b7b2;p=thirdparty%2Fdovecot%2Fcore.git lmtp: Duplicate the whole settings parser rather than individual settings structs This will be needed later on. --- diff --git a/src/lmtp/lmtp-client.c b/src/lmtp/lmtp-client.c index 103e4cf4ff..7e11997098 100644 --- a/src/lmtp/lmtp-client.c +++ b/src/lmtp/lmtp-client.c @@ -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, diff --git a/src/lmtp/lmtp-settings.c b/src/lmtp/lmtp-settings.c index 7405b1f18b..a2ff0e3912 100644 --- a/src/lmtp/lmtp-settings.c +++ b/src/lmtp/lmtp-settings.c @@ -186,7 +186,7 @@ static bool lmtp_settings_check(void *_set, pool_t pool ATTR_UNUSED, } /* */ -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(); } diff --git a/src/lmtp/lmtp-settings.h b/src/lmtp/lmtp-settings.h index 37cfba499e..5a35b489e2 100644 --- a/src/lmtp/lmtp-settings.h +++ b/src/lmtp/lmtp-settings.h @@ -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);