return 0;
}
+static bool
+config_get_value(struct config_filter_parser *filter_parser,
+ struct config_parser_key *config_key,
+ const char *key, string_t *str)
+{
+ struct config_module_parser *l =
+ &filter_parser->module_parsers[config_key->info_idx];
+ const struct setting_define *def =
+ &l->info->defines[config_key->define_idx];
+ if (def->type == SET_STRLIST || def->type == SET_BOOLLIST ||
+ def->type == SET_FILTER_NAME || def->type == SET_FILTER_ARRAY)
+ return FALSE;
+
+ if (l->change_counters != NULL &&
+ l->change_counters[config_key->define_idx] != 0) {
+ str_append(str, l->settings[config_key->define_idx].str);
+ return TRUE;
+ }
+ if (filter_parser->parent == NULL) {
+ /* use the default setting */
+ const void *value = CONST_PTR_OFFSET(l->info->defaults,
+ def->offset);
+ if (!config_export_type(str, value, def->type))
+ i_unreached();
+ return TRUE;
+ }
+
+ /* not changed by this parser. maybe parent has. */
+ return config_get_value(filter_parser->parent, config_key, key, str);
+}
+
static bool config_filter_has_include_group(const struct config_filter *filter)
{
for (; filter != NULL; filter = filter->parent) {
return ret;
}
-static bool
-config_get_value(struct config_filter_parser *filter_parser,
- struct config_parser_key *config_key,
- const char *key, string_t *str)
-{
- struct config_module_parser *l =
- &filter_parser->module_parsers[config_key->info_idx];
- const struct setting_define *def =
- &l->info->defines[config_key->define_idx];
- if (def->type == SET_STRLIST || def->type == SET_BOOLLIST ||
- def->type == SET_FILTER_NAME || def->type == SET_FILTER_ARRAY)
- return FALSE;
-
- if (l->change_counters != NULL &&
- l->change_counters[config_key->define_idx] != 0) {
- str_append(str, l->settings[config_key->define_idx].str);
- return TRUE;
- }
- if (filter_parser->parent == NULL) {
- /* use the default setting */
- const void *value = CONST_PTR_OFFSET(l->info->defaults,
- def->offset);
- if (!config_export_type(str, value, def->type))
- i_unreached();
- return TRUE;
- }
-
- /* not changed by this parser. maybe parent has. */
- return config_get_value(filter_parser->parent, config_key, key, str);
-}
-
static int config_write_keyvariable(struct config_parser_context *ctx,
const char *key, const char *value,
string_t *str)