diff --git a/changes/bug40287 b/changes/bug40287 new file mode 100644 index 0000000000..5a9c899d52 --- /dev/null +++ b/changes/bug40287 @@ -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. diff --git a/src/feature/relay/selftest.c b/src/feature/relay/selftest.c index 86b1533be1..46b4b20ffc 100644 --- a/src/feature/relay/selftest.c +++ b/src/feature/relay/selftest.c @@ -31,6 +31,8 @@ #include "feature/control/control_events.h" +#include "feature/dirauth/authmode.h" + #include "feature/dirclient/dirclient.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 * - there is no DirPort set, or * - AssumeReachable is set, or + * - We're a dir auth (see ticket #40287), or * - the network is disabled. */ int router_dirport_seems_reachable(const or_options_t *options) { int reach_checks_disabled = router_reachability_checks_disabled(options) || + authdir_mode(options) || !options->DirPort_set; return reach_checks_disabled || can_reach_dir_port;