]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Make sure SSL settings are always available
authorAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 25 Feb 2019 14:46:59 +0000 (16:46 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Thu, 21 Mar 2019 08:02:57 +0000 (10:02 +0200)
src/doveadm/doveadm-settings.c
src/doveadm/doveadm-settings.h
src/doveadm/doveadm.c
src/doveadm/main.c

index 72251ee6483bdb08c96df04452c5489f4585d30d..88da40c5ee1458f511d287e40e0a29d597b9f7ab 100644 (file)
@@ -196,12 +196,12 @@ static bool doveadm_settings_check(void *_set, pool_t pool ATTR_UNUSED,
 }
 /* </settings checks> */
 
+const struct master_service_ssl_settings *doveadm_ssl_set = NULL;
+
 void doveadm_get_ssl_settings(struct ssl_iostream_settings *set_r, pool_t pool)
 {
-       const struct master_service_ssl_settings *ssl_set =
-               master_service_ssl_settings_get(master_service);
        i_zero(set_r);
-       master_service_ssl_settings_to_iostream_set(ssl_set, pool,
+       master_service_ssl_settings_to_iostream_set(doveadm_ssl_set, pool,
                                                    MASTER_SERVICE_SSL_SETTINGS_TYPE_CLIENT,
                                                    set_r);
 }
index 5a714577a5bfbff5bd7315b054718042d2e51050..5287753aa120a862a12cfecd9724e10c0b342360 100644 (file)
@@ -37,6 +37,7 @@ struct doveadm_settings {
 extern const struct setting_parser_info doveadm_setting_parser_info;
 extern struct doveadm_settings *doveadm_settings;
 extern const struct master_service_settings *service_set;
+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);
index c74a6c2d3761e8bb665b8c4bf84d7cf4822046bf..739f42aa25a32ee477f174591bf960d746d18ae6 100644 (file)
@@ -275,7 +275,9 @@ static void doveadm_read_settings(void)
        set = master_service_settings_get_others(master_service)[1];
        doveadm_settings = settings_dup(&doveadm_setting_parser_info, set,
                                        pool_datastack_create());
-
+       doveadm_ssl_set = settings_dup(&master_service_ssl_setting_parser_info,
+                                      master_service_ssl_settings_get(master_service),
+                                      pool_datastack_create());
        doveadm_settings->parsed_features = set->parsed_features; /* copy this value by hand */
 }
 
index f89a84d790de68eda875812d3c48c71c9be4190e..cbaf92fcf537d7f525142a48635adef6fc54758a 100644 (file)
@@ -76,6 +76,9 @@ static void main_init(void)
        doveadm_settings = master_service_settings_get_others(master_service)[1];
        doveadm_settings = settings_dup(&doveadm_setting_parser_info,
                                        doveadm_settings, doveadm_settings_pool);
+       doveadm_ssl_set = settings_dup(&master_service_ssl_setting_parser_info,
+                                      master_service_ssl_settings_get(master_service),
+                                      doveadm_settings_pool);
        doveadm_verbose_proctitle =
                master_service_settings_get(master_service)->verbose_proctitle;
        if (doveadm_verbose_proctitle)