From: Aki Tuomi Date: Mon, 25 Feb 2019 14:46:59 +0000 (+0200) Subject: doveadm: Make sure SSL settings are always available X-Git-Tag: 2.3.6~55 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f4e9bff55854f41502284ee17c724b4ce0ecb73c;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Make sure SSL settings are always available --- diff --git a/src/doveadm/doveadm-settings.c b/src/doveadm/doveadm-settings.c index 72251ee648..88da40c5ee 100644 --- a/src/doveadm/doveadm-settings.c +++ b/src/doveadm/doveadm-settings.c @@ -196,12 +196,12 @@ static bool doveadm_settings_check(void *_set, pool_t pool ATTR_UNUSED, } /* */ +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); } diff --git a/src/doveadm/doveadm-settings.h b/src/doveadm/doveadm-settings.h index 5a714577a5..5287753aa1 100644 --- a/src/doveadm/doveadm-settings.h +++ b/src/doveadm/doveadm-settings.h @@ -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); diff --git a/src/doveadm/doveadm.c b/src/doveadm/doveadm.c index c74a6c2d37..739f42aa25 100644 --- a/src/doveadm/doveadm.c +++ b/src/doveadm/doveadm.c @@ -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 */ } diff --git a/src/doveadm/main.c b/src/doveadm/main.c index f89a84d790..cbaf92fcf5 100644 --- a/src/doveadm/main.c +++ b/src/doveadm/main.c @@ -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)