diff options
author | Nick Mathewson <nickm@torproject.org> | 2020-06-24 15:12:57 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2020-06-24 15:25:34 -0400 |
commit | edb023b1e74dd3b900af399126bd985fc4064857 (patch) | |
tree | a40593ce97d20070ac79fe5dd557832b03e6b607 /src/app | |
parent | 6edf7f6710600962f95e7f5458787dbc5e5c7411 (diff) | |
download | tor-edb023b1e74dd3b900af399126bd985fc4064857.tar.gz tor-edb023b1e74dd3b900af399126bd985fc4064857.zip |
Add an AssumeReachableIPv6 autobool option.
This option tells Tor that our IPv6 orport is reachable, and doesn't
need to be checked.
Closes the rest of 33224.
Diffstat (limited to 'src/app')
-rw-r--r-- | src/app/config/config.c | 5 | ||||
-rw-r--r-- | src/app/config/or_options_st.h | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/app/config/config.c b/src/app/config/config.c index 286cd9304a..7878fa9de0 100644 --- a/src/app/config/config.c +++ b/src/app/config/config.c @@ -323,6 +323,7 @@ static const config_var_t option_vars_[] = { V(AlternateDirAuthority, LINELIST, NULL), OBSOLETE("AlternateHSAuthority"), V(AssumeReachable, BOOL, "0"), + V(AssumeReachableIPv6, AUTOBOOL, "auto"), OBSOLETE("AuthDirBadDir"), OBSOLETE("AuthDirBadDirCCs"), V(AuthDirBadExit, LINELIST, NULL), @@ -3229,6 +3230,10 @@ options_validate_cb(const void *old_options_, void *options_, char **msg) REJECT("TokenBucketRefillInterval must be between 1 and 1000 inclusive."); } + if (options->AssumeReachable && options->AssumeReachableIPv6 == 0) { + REJECT("Cannot set AssumeReachable 1 and AssumeReachableIPv6 0."); + } + if (options->ExcludeExitNodes || options->ExcludeNodes) { options->ExcludeExitNodesUnion_ = routerset_new(); routerset_union(options->ExcludeExitNodesUnion_,options->ExcludeExitNodes); diff --git a/src/app/config/or_options_st.h b/src/app/config/or_options_st.h index 2f375f5d9b..07126cc6ce 100644 --- a/src/app/config/or_options_st.h +++ b/src/app/config/or_options_st.h @@ -195,7 +195,14 @@ struct or_options_t { unsigned int HTTPTunnelPort_set : 1; /**@}*/ - int AssumeReachable; /**< Whether to publish our descriptor regardless. */ + /** Whether to publish our descriptor regardless of all our self-tests + */ + int AssumeReachable; + /** Whether to publish our descriptor regardless of IPv6 self-tests. + * + * This is an autobool; when set to AUTO, it uses AssumeReachable. + **/ + int AssumeReachableIPv6; int AuthoritativeDir; /**< Boolean: is this an authoritative directory? */ int V3AuthoritativeDir; /**< Boolean: is this an authoritative directory * for version 3 directories? */ |