aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2006-06-14 11:06:43 +0000
committerRoger Dingledine <arma@torproject.org>2006-06-14 11:06:43 +0000
commit09dfe1b2658a4f92b2f3e6f70ffbcd04d64585e0 (patch)
tree03691c3be49078b1a1e72b6df1a001b9ddbc8c7d /src/or
parent66db3afb748edc786a21095f4a6d7df043130cd2 (diff)
downloadtor-09dfe1b2658a4f92b2f3e6f70ffbcd04d64585e0.tar
tor-09dfe1b2658a4f92b2f3e6f70ffbcd04d64585e0.tar.gz
bugfix: discourage picking directory authorities as our TestVia
hops, even if they're running the right versions, since we probably already have a connection established to them. svn:r6622
Diffstat (limited to 'src/or')
-rw-r--r--src/or/circuitbuild.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 2fdf6dfdd..14b1f97cc 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -1459,7 +1459,8 @@ onion_append_to_cpath(crypt_path_t **head_ptr, crypt_path_t *new_hop)
/** Pick a random server digest that's running a Tor version that
* doesn't have the reachability bug. These are versions 0.1.1.22+
- * and 0.1.2.1-alpha+.
+ * and 0.1.2.1-alpha+. Avoid picking authorities, since we're
+ * probably already connected to them.
*
* We only return one, so this doesn't become stupid when the
* whole network has upgraded. */
@@ -1480,7 +1481,8 @@ compute_preferred_testing_list(const char *answer)
if (r->is_running && r->is_valid &&
((tor_version_as_new_as(r->platform,"0.1.1.21-cvs") &&
!tor_version_as_new_as(r->platform,"0.1.2.0-alpha-cvs")) ||
- tor_version_as_new_as(r->platform,"0.1.2.1-alpha")))
+ tor_version_as_new_as(r->platform,"0.1.2.1-alpha")) &&
+ !router_get_trusteddirserver_by_digest(r->cache_info.identity_digest))
smartlist_add(choices, r));
router = smartlist_choose(choices);
smartlist_free(choices);