diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-09-02 15:00:09 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-09-13 12:36:40 -0400 |
commit | 7972af7073a621f3affa69d04bd05e0e432d7309 (patch) | |
tree | 481943c2867f718d2efd708a9c7ee7b253e9ede3 /src | |
parent | a6cad4db7063885aee2eceea7c481bc7583e1a4f (diff) | |
download | tor-7972af7073a621f3affa69d04bd05e0e432d7309.tar.gz tor-7972af7073a621f3affa69d04bd05e0e432d7309.zip |
Whoops; make options_validate conform to validate_fn_t.
This just goes to show: never cast a function pointer. Found while
testing new command line parse logic.
Bugfix on 1293835440dd4debf6fbfc66e755d9b9384aa362, which implemented
6752: Not in any released tor.
Diffstat (limited to 'src')
-rw-r--r-- | src/or/config.c | 13 | ||||
-rw-r--r-- | src/or/config.h | 6 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/or/config.c b/src/or/config.c index 7f1b77c4b1..40bdf91af5 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -550,6 +550,9 @@ static int parse_outbound_addresses(or_options_t *options, int validate_only, char **msg); static void config_maybe_load_geoip_files_(const or_options_t *options, const or_options_t *old_options); +static int options_validate_cb(void *old_options, void *options, + void *default_options, + int from_setconf, char **msg); /** Magic value for or_options_t. */ #define OR_OPTIONS_MAGIC 9090909 @@ -561,7 +564,7 @@ STATIC config_format_t options_format = { STRUCT_OFFSET(or_options_t, magic_), option_abbrevs_, option_vars_, - (validate_fn_t)options_validate, + options_validate_cb, NULL }; @@ -2385,6 +2388,14 @@ compute_publishserverdescriptor(or_options_t *options) * */ #define RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT (10) +static int +options_validate_cb(void *old_options, void *options, void *default_options, + int from_setconf, char **msg) +{ + return options_validate(old_options, options, default_options, + from_setconf, msg); +} + /** Return 0 if every setting in <b>options</b> is reasonable, is a * permissible transition from <b>old_options</b>, and none of the * testing-only settings differ from <b>default_options</b> unless in diff --git a/src/or/config.h b/src/or/config.h index 0ed5a5b5f8..8ee2a45725 100644 --- a/src/or/config.h +++ b/src/or/config.h @@ -32,7 +32,11 @@ int resolve_my_address(int warn_severity, const or_options_t *options, const char **method_out, char **hostname_out); int is_local_addr(const tor_addr_t *addr); void options_init(or_options_t *options); -char *options_dump(const or_options_t *options, int minimal); + +#define OPTIONS_DUMP_MINIMAL 1 +#define OPTIONS_DUMP_DEFAULTS 2 +#define OPTIONS_DUMP_ALL 3 +char *options_dump(const or_options_t *options, int how_to_dump); int options_init_from_torrc(int argc, char **argv); setopt_err_t options_init_from_string(const char *cf_defaults, const char *cf, int command, const char *command_arg, char **msg); |