From: Timo Sirainen Date: Tue, 29 Jul 2025 09:34:48 +0000 (+0300) Subject: config: Add and use set_str_expanded() to simplify the following changes X-Git-Tag: 2.4.2~584 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=def2830dcda924538301939b4e7965f2c9767068;p=thirdparty%2Fdovecot%2Fcore.git config: Add and use set_str_expanded() to simplify the following changes --- diff --git a/src/config/config-parser-private.h b/src/config/config-parser-private.h index eb018e7773..bcaa0c9971 100644 --- a/src/config/config-parser-private.h +++ b/src/config/config-parser-private.h @@ -122,6 +122,12 @@ extern int (*hook_config_parser_end)(struct config_parser_context *ctx, struct config_parsed *new_config, struct event *event, const char **error_r); +static inline const char * +set_str_expanded(const union config_module_parser_setting *value) +{ + return value->str; +} + /* Apply a key-value setting. $VARIABLE expansion is not done for the value. */ int config_apply_key_value(struct config_parser_context *ctx, const char *key, const char *value, const char **full_key_r) ATTR_NULL(4); diff --git a/src/config/config-parser.c b/src/config/config-parser.c index 2c27333ccf..d50a3d1f36 100644 --- a/src/config/config-parser.c +++ b/src/config/config-parser.c @@ -414,12 +414,12 @@ config_filter_get_value(struct config_filter_parser *filter_parser, if (l->change_counters != NULL && l->change_counters[config_key->define_idx] != 0) { - str_append(str, l->settings[config_key->define_idx].str); + str_append(str, set_str_expanded(&l->settings[config_key->define_idx])); return TRUE; } if (l2 != NULL && l2->change_counters != NULL && l2->change_counters[config_key->define_idx] != 0) { - str_append(str, l2->settings[config_key->define_idx].str); + str_append(str, set_str_expanded(&l2->settings[config_key->define_idx])); return TRUE; } @@ -1631,10 +1631,10 @@ void config_fill_set_parser(struct setting_parser_context *parser, break; } default: { - const char *value = p->settings[i].str; + const char *value = set_str_expanded(&p->settings[i]); if (p->info->defines[i].type != SET_STR_NOVARS && p->info->defines[i].type != SET_FILE && - !setting_value_can_check(p->settings[i].str, + !setting_value_can_check(set_str_expanded(&p->settings[i]), expand_values)) { /* We don't know what the variables would expand to. */ @@ -1743,7 +1743,7 @@ get_str_setting(struct config_filter_parser *parser, const char *key, i_assert(module_parser->info->defines[key_idx].type != SET_STRLIST && module_parser->info->defines[key_idx].type != SET_BOOLLIST && module_parser->info->defines[key_idx].type != SET_FILTER_ARRAY); - return module_parser->settings[key_idx].str; + return set_str_expanded(&module_parser->settings[key_idx]); } } return default_value; @@ -3427,9 +3427,9 @@ config_parsed_get_setting_full(const struct config_parsed *config, i_assert(def->type != SET_STRLIST && def->type != SET_BOOLLIST && def->type != SET_FILTER_ARRAY); if (l[info_idx].change_counters[key_idx] != 0) - return l[info_idx].settings[key_idx].str; + return set_str_expanded(&l[info_idx].settings[key_idx]); if (ldef[info_idx].change_counters[key_idx] != 0) - return ldef[info_idx].settings[key_idx].str; + return set_str_expanded(&ldef[info_idx].settings[key_idx]); const void *value = CONST_PTR_OFFSET(l[info_idx].info->defaults, def->offset); string_t *str = t_str_new(64); diff --git a/src/config/config-request.c b/src/config/config-request.c index b34b0d0e82..cb31d2371c 100644 --- a/src/config/config-request.c +++ b/src/config/config-request.c @@ -273,7 +273,7 @@ settings_export(struct config_export_context *ctx, if (!dump_default && strcmp(get_default_value(old_default, info, def), - module_parser->settings[define_idx].str) == 0) { + set_str_expanded(&module_parser->settings[define_idx])) == 0) { /* Explicitly set setting value wasn't actually changed from its default. */ break; @@ -282,16 +282,16 @@ settings_export(struct config_export_context *ctx, CONFIG_PARSER_CHANGE_DEFAULTS) { /* explicitly set */ str_append(ctx->value, - module_parser->settings[define_idx].str); + set_str_expanded(&module_parser->settings[define_idx])); } else if (module_parser->change_counters[define_idx] == CONFIG_PARSER_CHANGE_DEFAULTS && !default_changed) { /* default not changed by old version checks */ str_append(ctx->value, - module_parser->settings[define_idx].str); + set_str_expanded(&module_parser->settings[define_idx])); } else if (module_parser->change_counters[define_idx] == CONFIG_PARSER_CHANGE_GROUP) { str_append(ctx->value, - module_parser->settings[define_idx].str); + set_str_expanded(&module_parser->settings[define_idx])); } else { str_append(ctx->value, get_default_value(old_default, info, def));