diff options
author | Max Kellermann <max@duempel.org> | 2009-06-19 09:02:14 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-06-25 08:42:25 +0200 |
commit | 637c6a1850963638018e57b70ae3b807c3028a1d (patch) | |
tree | 57186f65dcb8e7f87f8f974efa954fc7d035783e /src/conf.c | |
parent | 0cbc4012e85c275c64ad551ba4484ee5f505fe4c (diff) | |
download | mpd-637c6a1850963638018e57b70ae3b807c3028a1d.tar.gz mpd-637c6a1850963638018e57b70ae3b807c3028a1d.tar.xz mpd-637c6a1850963638018e57b70ae3b807c3028a1d.zip |
conf: log unused/unknown block parameters
Diffstat (limited to 'src/conf.c')
-rw-r--r-- | src/conf.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/conf.c b/src/conf.c index ac08d7845..385dff4d4 100644 --- a/src/conf.c +++ b/src/conf.c @@ -188,6 +188,35 @@ void config_global_init(void) { } +static void +config_param_check(gpointer data, G_GNUC_UNUSED gpointer user_data) +{ + struct config_param *param = data; + + if (!param->used) + /* this whole config_param was not queried at all - + the feature might be disabled at compile time? + Silently ignore it here. */ + return; + + for (unsigned i = 0; i < param->num_block_params; i++) { + struct block_param *bp = ¶m->block_params[i]; + + if (!bp->used) + g_warning("option '%s' on line %i was not recognized", + bp->name, bp->line); + } +} + +void config_global_check(void) +{ + for (unsigned i = 0; i < G_N_ELEMENTS(config_entries); ++i) { + struct config_entry *entry = &config_entries[i]; + + g_slist_foreach(entry->params, config_param_check, NULL); + } +} + void config_add_block_param(struct config_param * param, const char *name, const char *value, int line) |