relay: No longer test dirport reachability for authorities

Now that exit relays don't allow exit connections to directory authority
DirPorts, the follow-up step is to make directory authorities stop doing
DirPort reachability checks.

Fixes #40287

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
Roger Dingledine 2021-02-10 03:10:12 -05:00 committed by David Goulet
parent 336c45f1a5
commit 8a8045c788
2 changed files with 8 additions and 0 deletions

4
changes/bug40287 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (directory authority):
- Now that exit relays don't allow exit connections to directory authority
DirPorts (network reentry), disable authorities' reachability self test
on the DirPort. Fixes bug 40287; bugfix on 0.4.5.5-rc.

View File

@ -31,6 +31,8 @@
#include "feature/control/control_events.h" #include "feature/control/control_events.h"
#include "feature/dirauth/authmode.h"
#include "feature/dirclient/dirclient.h" #include "feature/dirclient/dirclient.h"
#include "feature/dircommon/directory.h" #include "feature/dircommon/directory.h"
@ -142,12 +144,14 @@ router_orport_seems_reachable(const or_options_t *options,
* - we've seen a successful reachability check, or * - we've seen a successful reachability check, or
* - there is no DirPort set, or * - there is no DirPort set, or
* - AssumeReachable is set, or * - AssumeReachable is set, or
* - We're a dir auth (see ticket #40287), or
* - the network is disabled. * - the network is disabled.
*/ */
int int
router_dirport_seems_reachable(const or_options_t *options) router_dirport_seems_reachable(const or_options_t *options)
{ {
int reach_checks_disabled = router_reachability_checks_disabled(options) || int reach_checks_disabled = router_reachability_checks_disabled(options) ||
authdir_mode(options) ||
!options->DirPort_set; !options->DirPort_set;
return reach_checks_disabled || return reach_checks_disabled ||
can_reach_dir_port; can_reach_dir_port;