From: Roger Dingledine Date: Fri, 11 Jul 2008 21:42:09 +0000 (+0000) Subject: When relays do their initial bandwidth measurement, don't limit X-Git-Tag: tor-0.2.1.3-alpha~47 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=267e61d0f3eaf1c4e2bb0b910417917468e93814;p=thirdparty%2Ftor.git When relays do their initial bandwidth measurement, don't limit to just our our entry guards for the test circuits. Otherwise we tend to have multiple test circuits going through a single entry guard, which makes our bandwidth test less accurate. Fixes part of bug 654; patch contributed by Josh Albrecht. (Actually, modify Josh's patch to avoid doing that when you're a bridge relay, since it would leak more than we want to leak.) svn:r15850 --- diff --git a/ChangeLog b/ChangeLog index 204e853142..9159314697 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,13 @@ Changes in version 0.2.1.3-alpha - 2008-07-xx on the client side when connecting to a hidden service. Bugfix on 0.0.6pre1. Found and fixed by Christian Wilms; resolves bug 743. + o Minor features: + - When relays do their initial bandwidth measurement, don't limit + to just our our entry guards for the test circuits. Otherwise we + tend to have multiple test circuits going through a single entry + guard, which makes our bandwidth test less accurate. Fixes part + of bug 654; patch contributed by Josh Albrecht. + o Minor bugfixes: - Change the contrib/tor.logrotate script so it makes the new logs as "_tor:_tor" rather than the default, which is generally diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 8e89daf40f..3071f83f19 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -1621,9 +1621,9 @@ choose_good_entry_server(uint8_t purpose, cpath_build_state_t *state) routerinfo_t *r, *choice; smartlist_t *excluded; or_options_t *options = get_options(); - (void)purpose; /* not used yet. */ - if (state && options->UseEntryGuards) { + if (state && options->UseEntryGuards && + (purpose != CIRCUIT_PURPOSE_TESTING || options->BridgeRelay)) { return choose_random_entry(state); }