Mercurial > dovecot > core-2.2
changeset 11632:8d76b2cef0b5 HEAD
lib-settings: settings_check() now also checks dynamic parsers.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 25 Jun 2010 15:02:57 +0100 |
parents | d41694c931d0 |
children | 0dc6f14c271d |
files | src/lib-settings/settings-parser.c |
diffstat | 1 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-settings/settings-parser.c Fri Jun 25 14:03:20 2010 +0100 +++ b/src/lib-settings/settings-parser.c Fri Jun 25 15:02:57 2010 +0100 @@ -1027,6 +1027,26 @@ return ret; } +static bool +settings_check_dynamic(const struct setting_parser_info *info, pool_t pool, + void *set, const char **error_r) +{ + unsigned int i; + + if (info->dynamic_parsers == NULL) + return TRUE; + + for (i = 0; info->dynamic_parsers[i].name != NULL; i++) { + struct dynamic_settings_parser *dyn = &info->dynamic_parsers[i]; + + if (!settings_check(dyn->info, pool, + PTR_OFFSET(set, dyn->struct_offset), + error_r)) + return FALSE; + } + return TRUE; +} + bool settings_check(const struct setting_parser_info *info, pool_t pool, void *set, const char **error_r) { @@ -1055,7 +1075,7 @@ return FALSE; } } - return TRUE; + return settings_check_dynamic(info, pool, set, error_r); } bool settings_parser_check(struct setting_parser_context *ctx, pool_t pool,