From 39dd2e2aa826930bfe681d99c3e8374757ac511b Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 4 Sep 2019 13:54:26 -0400 Subject: [PATCH] Document validate_fn_t as it stands. Also document that it will be changed in a later branch. --- src/app/config/confparse.h | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/app/config/confparse.h b/src/app/config/confparse.h index 405200d692..baf60f07cd 100644 --- a/src/app/config/confparse.h +++ b/src/app/config/confparse.h @@ -51,10 +51,28 @@ typedef struct config_deprecation_t { **/ #define PLURAL(tok) { #tok, #tok "s", 0, 0 } -/** Type of a callback to validate whether a given configuration is - * well-formed and consistent. See options_trial_assign() for documentation - * of arguments. */ -typedef int (*validate_fn_t)(void*,void*,void*,int,char**); +/** + * Type of a callback to validate whether a given configuration is + * well-formed and consistent. + * + * The configuration to validate is passed as newval. The previous + * configuration, if any, is provided in oldval. The + * default_val argument receives a configuration object initialized + * with default values for all its fields. The from_setconf argument + * is true iff the input comes from a SETCONF controller command. + * + * On success, return 0. On failure, set *msg_out to a newly allocated + * error message, and return -1. + * + * REFACTORING NOTE: Currently, this callback type is only used from inside + * config_dump(); later in our refactoring, it will be cleaned up and used + * more generally. + */ +typedef int (*validate_fn_t)(void *oldval, + void *newval, + void *default_val, + int from_setconf, + char **msg_out); struct config_mgr_t;