From: Marco Bettini Date: Wed, 30 Mar 2022 15:28:24 +0000 (+0000) Subject: global: Use is_config_binary() where CONFIG_BINARY macro does not propagate X-Git-Tag: 2.4.0~4160 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=03eb8d7c40eba8672533f241af0d2867e589cbc0;p=thirdparty%2Fdovecot%2Fcore.git global: Use is_config_binary() where CONFIG_BINARY macro does not propagate Not all the *-settings.c sources are embeded in the generated all-settings.c source file, which is the only scope where the CONFIG_BINARY macro is defined. This specifically applies to master-service-ssl-settings.c which contained code never activated by the #ifdef(s) on the macro as this file is not part of the synthesized code. --- diff --git a/src/config/main.c b/src/config/main.c index 01a80ba827..13dc76d264 100644 --- a/src/config/main.c +++ b/src/config/main.c @@ -30,6 +30,7 @@ int main(int argc, char *argv[]) restrict_access_by_env(RESTRICT_ACCESS_FLAG_ALLOW_ROOT, NULL); restrict_access_allow_coredumps(TRUE); + set_config_binary(TRUE); config_parse_load_modules(); path = master_service_get_config_path(master_service); diff --git a/src/lib-master/master-service-ssl-settings.c b/src/lib-master/master-service-ssl-settings.c index 5da607daf1..2f25c9f859 100644 --- a/src/lib-master/master-service-ssl-settings.c +++ b/src/lib-master/master-service-ssl-settings.c @@ -136,14 +136,12 @@ master_service_ssl_settings_check(void *_set, pool_t pool ATTR_UNUSED, and few of those tools care about SSL settings. so don't check ssl_cert/ssl_key/etc validity here except in doveconf, because it usually is just an extra annoyance. */ -#ifdef CONFIG_BINARY - T_BEGIN { + if (is_config_binary()) T_BEGIN { const char *proto = t_str_ucase(set->ssl_min_protocol); if (strstr(proto, "ANY") != NULL) i_warning("ssl_min_protocol=ANY is used - This is " - "insecure and intended only for testing"); + "insecure and intended only for testing"); } T_END; -#endif if (set->ssl_verify_client_cert && *set->ssl_ca == '\0') { *error_r = "ssl_verify_client_cert set, but ssl_ca not"; diff --git a/src/lib-settings/settings-parser.c b/src/lib-settings/settings-parser.c index 1675740afa..a64ee66cb1 100644 --- a/src/lib-settings/settings-parser.c +++ b/src/lib-settings/settings-parser.c @@ -2232,3 +2232,15 @@ const char *settings_section_escape(const char *name) return str_c(str); } +static bool config_binary = FALSE; + +bool is_config_binary(void) +{ + return config_binary; +} + +void set_config_binary(bool value) +{ + config_binary = value; +} + diff --git a/src/lib-settings/settings-parser.h b/src/lib-settings/settings-parser.h index 21d00604d6..81ce318aa1 100644 --- a/src/lib-settings/settings-parser.h +++ b/src/lib-settings/settings-parser.h @@ -280,4 +280,8 @@ int settings_get_size(const char *str, uoff_t *bytes_r, /* Parse boolean string, return as boolean */ int settings_get_bool(const char *value, bool *result_r, const char **error_r); + +void set_config_binary(bool value); +bool is_config_binary(void); + #endif