Only choose directory DirPorts on relays

This commit is contained in:
teor (Tim Wilson-Brown) 2016-04-28 16:07:47 +10:00 committed by Nick Mathewson
parent 88deb52d55
commit 9aa280cc0c

View file

@ -630,6 +630,7 @@ directory_choose_address_routerstatus(const routerstatus_t *status,
tor_assert(use_or_ap != NULL); tor_assert(use_or_ap != NULL);
tor_assert(use_dir_ap != NULL); tor_assert(use_dir_ap != NULL);
const or_options_t *options = get_options();
int have_or = 0, have_dir = 0; int have_or = 0, have_dir = 0;
/* We expect status to have at least one reachable address if we're /* We expect status to have at least one reachable address if we're
@ -671,10 +672,11 @@ directory_choose_address_routerstatus(const routerstatus_t *status,
} }
/* DirPort connections /* DirPort connections
* DIRIND_ONEHOP uses ORPort, but may fall back to the DirPort */ * DIRIND_ONEHOP uses ORPort, but may fall back to the DirPort on relays */
if (indirection == DIRIND_DIRECT_CONN || if (indirection == DIRIND_DIRECT_CONN ||
indirection == DIRIND_ANON_DIRPORT || indirection == DIRIND_ANON_DIRPORT ||
indirection == DIRIND_ONEHOP) { (indirection == DIRIND_ONEHOP
&& !directory_must_use_begindir(options))) {
have_dir = fascist_firewall_choose_address_rs(status, have_dir = fascist_firewall_choose_address_rs(status,
FIREWALL_DIR_CONNECTION, 0, FIREWALL_DIR_CONNECTION, 0,
use_dir_ap); use_dir_ap);