}
}
-const char *
-config_parsed_get_setting(struct config_parsed *config,
- const char *info_name, const char *key)
+static const char *
+config_parsed_get_setting_full(struct config_parsed *config,
+ const char *info_name, const char *key,
+ unsigned int *change_counter_r)
{
struct config_filter_parser *filter_parser =
config_parsed_get_global_filter_parser(config);
const struct setting_define *def = &l[info_idx].info->defines[key_idx];
+ if (change_counter_r != NULL) {
+ *change_counter_r = l[info_idx].change_counters[key_idx];
+ return NULL;
+ }
/* Custom handler for the import_environment strlist setting. The
calling function expects a string of key=value pairs. See
master_service_get_import_environment_keyvals() for the original
return str_c(str);
}
+const char *
+config_parsed_get_setting(struct config_parsed *config,
+ const char *info_name, const char *key)
+{
+ return config_parsed_get_setting_full(config, info_name, key, NULL);
+}
+
+unsigned int
+config_parsed_get_setting_change_counter(struct config_parsed *config,
+ const char *info_name, const char *key)
+{
+ unsigned int change_counter;
+
+ (void)config_parsed_get_setting_full(config, info_name, key,
+ &change_counter);
+ return change_counter;
+}
+
const struct setting_define *
config_parsed_key_lookup(struct config_parsed *config, const char *key)
{
const char *
config_parsed_get_setting(struct config_parsed *config,
const char *info_name, const char *key);
+/* Return the change_counter for the specified setting. */
+unsigned int
+config_parsed_get_setting_change_counter(struct config_parsed *config,
+ const char *info_name,
+ const char *key);
/* Lookup setting with the specified key. */
const struct setting_define *
config_parsed_key_lookup(struct config_parsed *config, const char *key);