From f9b9acdfc5081fc29f4b25d02485788700d1d1fe Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Sat, 12 May 2018 13:33:20 +0200 Subject: [PATCH] submission: Substitute variables in settings. --- src/submission/main.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/submission/main.c b/src/submission/main.c index 1d9024979a..737ef32184 100644 --- a/src/submission/main.c +++ b/src/submission/main.c @@ -12,6 +12,7 @@ #include "process-title.h" #include "restrict-access.h" #include "fd-util.h" +#include "settings-parser.h" #include "master-service.h" #include "master-login.h" #include "master-service-settings.h" @@ -112,7 +113,8 @@ client_create_from_input(const struct mail_storage_service_input *input, { struct mail_storage_service_user *user; struct mail_user *mail_user; - const struct submission_settings *set; + struct submission_settings *set; + const char *errstr; const char *helo = NULL; const unsigned char *data; size_t data_len; @@ -129,6 +131,17 @@ client_create_from_input(const struct mail_storage_service_input *input, if (set->verbose_proctitle) verbose_proctitle = TRUE; + if (settings_var_expand(&submission_setting_parser_info, set, + mail_user->pool, mail_user_var_expand_table(mail_user), + &errstr) <= 0) { + *error_r = t_strdup_printf("Failed to expand settings: %s", errstr); + send_error(fd_out, set->hostname, + "4.3.5", MAIL_ERRSTR_CRITICAL_MSG); + mail_user_unref(&mail_user); + mail_storage_service_user_unref(&user); + return -1; + } + if (set->submission_relay_host == NULL || *set->submission_relay_host == '\0') { *error_r = "No relay host configured for submission proxy " -- 2.47.3