From: Timo Sirainen Date: Tue, 10 Sep 2019 07:50:14 +0000 (+0300) Subject: doveadm: Expand variables in doveadm_settings X-Git-Tag: 2.3.9~159 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=34228a2d8735c5a35d25ea9357b08fec5da04b43;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Expand variables in doveadm_settings Required by the next commit. --- diff --git a/src/doveadm/doveadm-settings.c b/src/doveadm/doveadm-settings.c index 88da40c5ee..e0089d384d 100644 --- a/src/doveadm/doveadm-settings.c +++ b/src/doveadm/doveadm-settings.c @@ -1,6 +1,7 @@ /* Copyright (c) 2010-2018 Dovecot authors, see the included COPYING file */ #include "lib.h" +#include "var-expand.h" #include "buffer.h" #include "settings-parser.h" #include "service-settings.h" @@ -205,3 +206,13 @@ void doveadm_get_ssl_settings(struct ssl_iostream_settings *set_r, pool_t pool) MASTER_SERVICE_SSL_SETTINGS_TYPE_CLIENT, set_r); } + +void doveadm_settings_expand(struct doveadm_settings *set, pool_t pool) +{ + struct var_expand_table tab[] = { { '\0', NULL, NULL } }; + const char *error; + + if (settings_var_expand(&doveadm_setting_parser_info, set, + pool, tab, &error) <= 0) + i_fatal("Failed to expand settings: %s", error); +} diff --git a/src/doveadm/doveadm-settings.h b/src/doveadm/doveadm-settings.h index 5287753aa1..365b0e515e 100644 --- a/src/doveadm/doveadm-settings.h +++ b/src/doveadm/doveadm-settings.h @@ -41,5 +41,6 @@ extern const struct master_service_ssl_settings *doveadm_ssl_set; struct ssl_iostream_settings; void doveadm_get_ssl_settings(struct ssl_iostream_settings *set_r, pool_t pool); +void doveadm_settings_expand(struct doveadm_settings *set, pool_t pool); #endif diff --git a/src/doveadm/doveadm.c b/src/doveadm/doveadm.c index aa02f46284..66104e291f 100644 --- a/src/doveadm/doveadm.c +++ b/src/doveadm/doveadm.c @@ -281,6 +281,7 @@ static void doveadm_read_settings(void) doveadm_ssl_set = settings_dup(&master_service_ssl_setting_parser_info, master_service_ssl_settings_get(master_service), doveadm_settings_pool); + doveadm_settings_expand(doveadm_settings, doveadm_settings_pool); doveadm_settings->parsed_features = set->parsed_features; /* copy this value by hand */ } diff --git a/src/doveadm/main.c b/src/doveadm/main.c index cbaf92fcf5..23767a0c71 100644 --- a/src/doveadm/main.c +++ b/src/doveadm/main.c @@ -79,6 +79,7 @@ static void main_init(void) doveadm_ssl_set = settings_dup(&master_service_ssl_setting_parser_info, master_service_ssl_settings_get(master_service), doveadm_settings_pool); + doveadm_settings_expand(doveadm_settings, doveadm_settings_pool); doveadm_verbose_proctitle = master_service_settings_get(master_service)->verbose_proctitle; if (doveadm_verbose_proctitle)