diff --git a/src/conf.c b/src/conf.c index 9dfebc059..7560c02ba 100644 --- a/src/conf.c +++ b/src/conf.c @@ -23,6 +23,7 @@ #include +#include #include #include #include @@ -349,6 +350,15 @@ void config_read_file(const char *file) fclose(fp); } +void +config_add_param(const char *name, struct config_param *param) +{ + struct config_entry *entry = config_entry_get(name); + assert(entry != NULL); + + entry->params = g_slist_append(entry->params, param); +} + struct config_param * config_get_next_param(const char *name, const struct config_param * last) { diff --git a/src/conf.h b/src/conf.h index 42ac6f228..5e191815f 100644 --- a/src/conf.h +++ b/src/conf.h @@ -91,6 +91,13 @@ void config_global_finish(void); void config_read_file(const char *file); +/** + * Adds a new configuration parameter. The name must be registered + * with registerConfigParam(). + */ +void +config_add_param(const char *name, struct config_param *param); + /* don't free the returned value set _last_ to NULL to get first entry */ struct config_param *