aboutsummaryrefslogtreecommitdiff
path: root/src/feature/relay/selftest.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-06-26 08:34:56 -0400
committerNick Mathewson <nickm@torproject.org>2020-06-26 08:34:56 -0400
commitdbc2b75009a781f2664b871a6033d47b04946299 (patch)
tree0f9e01d158bb54534233dd2e0792175a057592df /src/feature/relay/selftest.c
parent40922629fe92a947ef3d84e71826a5030884cf08 (diff)
parentcb25f5772441e6caed4ae8b84300f32de078fe62 (diff)
downloadtor-dbc2b75009a781f2664b871a6033d47b04946299.tar.gz
tor-dbc2b75009a781f2664b871a6033d47b04946299.zip
Merge branch 'assume_reachable_revamp'
Diffstat (limited to 'src/feature/relay/selftest.c')
-rw-r--r--src/feature/relay/selftest.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/feature/relay/selftest.c b/src/feature/relay/selftest.c
index 589e9a303f..5602ac1d47 100644
--- a/src/feature/relay/selftest.c
+++ b/src/feature/relay/selftest.c
@@ -86,9 +86,8 @@ router_reachability_checks_disabled(const or_options_t *options)
* orport checks.
*/
int
-router_orport_seems_reachable(
- const or_options_t *options,
- int family)
+router_orport_seems_reachable(const or_options_t *options,
+ int family)
{
tor_assert_nonfatal(family == AF_INET || family == AF_INET6 || family == 0);
int reach_checks_disabled = router_reachability_checks_disabled(options);
@@ -96,6 +95,11 @@ router_orport_seems_reachable(
return true;
}
+ // Note that we do a == 1 here, not just a boolean check. This value
+ // is also an autobool, so CFG_AUTO does not mean that we should
+ // assume IPv6 ports are reachable.
+ const bool ipv6_assume_reachable = (options->AssumeReachableIPv6 == 1);
+
// Which reachability flags should we look at?
const bool checking_ipv4 = (family == AF_INET || family == 0);
const bool checking_ipv6 = (family == AF_INET6 || family == 0);
@@ -105,7 +109,7 @@ router_orport_seems_reachable(
return false;
}
}
- if (checking_ipv6) {
+ if (checking_ipv6 && !ipv6_assume_reachable) {
if (have_orport_for_family(AF_INET6) && !can_reach_or_port_ipv6) {
return false;
}
@@ -409,7 +413,7 @@ ready_to_publish(const or_options_t *options)
{
return options->PublishServerDescriptor_ != NO_DIRINFO &&
router_dirport_seems_reachable(options) &&
- router_should_skip_orport_reachability_check(options);
+ router_all_orports_seem_reachable(options);
}
/** Annotate that we found our ORPort reachable with a given address