]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Expand variables in doveadm_settings
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 10 Sep 2019 07:50:14 +0000 (10:50 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 11 Sep 2019 09:31:06 +0000 (09:31 +0000)
Required by the next commit.

src/doveadm/doveadm-settings.c
src/doveadm/doveadm-settings.h
src/doveadm/doveadm.c
src/doveadm/main.c

index 88da40c5ee1458f511d287e40e0a29d597b9f7ab..e0089d384d110df23da2718eddceca2317c78d88 100644 (file)
@@ -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);
+}
index 5287753aa120a862a12cfecd9724e10c0b342360..365b0e515e8d26c66d55e95c6865989860202bc6 100644 (file)
@@ -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
index aa02f46284c16f2aadfd4e19b6bcea844903af61..66104e291f4b484161fc02c305a5868c617cb487 100644 (file)
@@ -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 */
 }
 
index cbaf92fcf537d7f525142a48635adef6fc54758a..23767a0c716e4155571aae6b9ff5f0b8a56393f3 100644 (file)
@@ -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)