config_parser_add_filter_array(struct config_parser_context *ctx,
const char *filter_key, const char *name)
{
- config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_INTERNAL);
+ config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_SERVICE_DEFAULTS);
if (config_apply_exact_line(ctx, NULL, filter_key, name) < 0) {
i_panic("Failed to add %s %s: %s", filter_key, name,
ctx->error);
const struct setting_parser_info *info = all_infos[service_info_idx];
string_t *value_str = t_str_new(64);
- config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_INTERNAL);
+ config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_SERVICE_DEFAULTS);
for (unsigned int i = 0; info->defines[i].key != NULL; i++) {
const void *value = CONST_PTR_OFFSET(default_set,
info->defines[i].offset);
key = p + 1;
}
- config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_INTERNAL);
+ config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_SERVICE_DEFAULTS);
if (config_apply_line(ctx, key, defaults[i].value, NULL) < 0) {
i_panic("Failed to add default setting %s=%s for service %s: %s",
defaults[i].key, defaults[i].value,
static void config_parser_add_info_defaults(struct config_parser_context *ctx,
const struct setting_parser_info *info)
{
- config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_INTERNAL);
+ config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_DEFAULTS);
config_parser_add_info_defaults_arr(ctx, info, info->default_settings);
config_parser_set_change_counter(ctx, CONFIG_PARSER_CHANGE_EXPLICIT);
}
struct config_module_parser *p =
&filter_parser->module_parsers[module_idx];
if (p->change_counters != NULL &&
- p->change_counters[set_idx] > CONFIG_PARSER_CHANGE_INTERNAL)
+ p->change_counters[set_idx] == CONFIG_PARSER_CHANGE_EXPLICIT)
return TRUE;
filter_parser = filter_parser->parent;
}
if (p->change_counters == NULL)
continue;
for (set_idx = 0; set_idx < p->set_count; set_idx++) {
- if (p->change_counters[set_idx] != CONFIG_PARSER_CHANGE_INTERNAL)
+ if (p->change_counters[set_idx] != CONFIG_PARSER_CHANGE_DEFAULTS)
continue;
/* Found a default setting. If the same setting is
#define IS_WHITE(c) ((c) == ' ' || (c) == '\t')
/* change_counter used for default settings created internally */
-#define CONFIG_PARSER_CHANGE_INTERNAL 1
+#define CONFIG_PARSER_CHANGE_DEFAULTS 1
+/* change_counter used for default service settings created internally */
+#define CONFIG_PARSER_CHANGE_SERVICE_DEFAULTS 2
/* change_counter used for settings changed by configuration file */
-#define CONFIG_PARSER_CHANGE_EXPLICIT 2
+#define CONFIG_PARSER_CHANGE_EXPLICIT 3
struct config_parsed;