mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 13:43:47 +01:00
Add a function to make sure all values in a config object are ok
This commit is contained in:
parent
a91ed23403
commit
a114df9a04
@ -673,3 +673,21 @@ config_dump(const config_format_t *fmt, const void *default_options,
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if every member of <b>options</b> is in-range and well-formed.
|
||||
* Return false otherwise. Log errors at level <b>severity</b>.
|
||||
*/
|
||||
bool
|
||||
config_check_ok(const config_format_t *fmt, const void *options, int severity)
|
||||
{
|
||||
bool all_ok = true;
|
||||
for (int i=0; fmt->vars[i].member.name; ++i) {
|
||||
if (!struct_var_ok(options, &fmt->vars[i].member)) {
|
||||
log_fn(severity, LD_BUG, "Invalid value for %s",
|
||||
fmt->vars[i].member.name);
|
||||
all_ok = false;
|
||||
}
|
||||
}
|
||||
return all_ok;
|
||||
}
|
||||
|
@ -138,6 +138,8 @@ void *config_dup(const config_format_t *fmt, const void *old);
|
||||
char *config_dump(const config_format_t *fmt, const void *default_options,
|
||||
const void *options, int minimal,
|
||||
int comment_defaults);
|
||||
bool config_check_ok(const config_format_t *fmt, const void *options,
|
||||
int severity);
|
||||
int config_assign(const config_format_t *fmt, void *options,
|
||||
struct config_line_t *list,
|
||||
unsigned flags, char **msg);
|
||||
|
Loading…
Reference in New Issue
Block a user