mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
Refactor common code out of reachability checks
No actual changes in behavior
This commit is contained in:
parent
d3c60f2bd7
commit
b51316c0e7
@ -1079,24 +1079,51 @@ router_reset_reachability(void)
|
||||
can_reach_or_port = can_reach_dir_port = 0;
|
||||
}
|
||||
|
||||
/** Return 1 if ORPort is known reachable; else return 0. */
|
||||
/** Return 1 if we won't do reachability checks, because:
|
||||
* - AssumeReachable is set, or
|
||||
* - the network is disabled.
|
||||
* Otherwise, return 0.
|
||||
*/
|
||||
static int
|
||||
router_reachability_checks_disabled(const or_options_t *options)
|
||||
{
|
||||
return options->AssumeReachable ||
|
||||
net_is_disabled();
|
||||
}
|
||||
|
||||
/** Return 0 if we need to do an ORPort reachability check, because:
|
||||
* - no reachability check has been done yet, or
|
||||
* - we've initiated reachability checks, but none have succeeded.
|
||||
* Return 1 if we don't need to do an ORPort reachability check, because:
|
||||
* - we've seen a successful reachability check, or
|
||||
* - AssumeReachable is set, or
|
||||
* - the network is disabled.
|
||||
*/
|
||||
int
|
||||
check_whether_orport_reachable(void)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
return options->AssumeReachable ||
|
||||
net_is_disabled() ||
|
||||
int reach_checks_disabled = router_reachability_checks_disabled(options);
|
||||
return reach_checks_disabled ||
|
||||
can_reach_or_port;
|
||||
}
|
||||
|
||||
/** Return 1 if we don't have a dirport configured, or if it's reachable. */
|
||||
/** Return 0 if we need to do a DirPort reachability check, because:
|
||||
* - no reachability check has been done yet, or
|
||||
* - we've initiated reachability checks, but none have succeeded.
|
||||
* Return 1 if we don't need to do a DirPort reachability check, because:
|
||||
* - we've seen a successful reachability check, or
|
||||
* - there is no DirPort set, or
|
||||
* - AssumeReachable is set, or
|
||||
* - the network is disabled.
|
||||
*/
|
||||
int
|
||||
check_whether_dirport_reachable(void)
|
||||
{
|
||||
const or_options_t *options = get_options();
|
||||
return !options->DirPort_set ||
|
||||
options->AssumeReachable ||
|
||||
net_is_disabled() ||
|
||||
int reach_checks_disabled = router_reachability_checks_disabled(options) ||
|
||||
!options->DirPort_set;
|
||||
return reach_checks_disabled ||
|
||||
can_reach_dir_port;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user