aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/or/circuitbuild.c1
-rw-r--r--src/or/config.c7
2 files changed, 5 insertions, 3 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index a8ac76e42..f2eda22dc 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -1443,6 +1443,7 @@ compute_preferred_testing_list(const char *answer)
((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")) &&
+ !is_local_IP(r->addr) &&
!router_get_trusteddirserver_by_digest(r->cache_info.identity_digest))
smartlist_add(choices, r));
router = smartlist_choose(choices);
diff --git a/src/or/config.c b/src/or/config.c
index a4c53d4ca..7b7628830 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -1729,9 +1729,10 @@ is_local_IP(uint32_t ip)
{
if (is_internal_IP(ip, 0))
return 1;
- /* Check whether ip is on the same /24 as we are.
- *
- * It's possible that this next check will hit before the first time
+ /* Check whether ip is on the same /24 as we are. */
+ if (get_options()->EnforceDistinctSubnets == 0)
+ return 0;
+ /* It's possible that this next check will hit before the first time
* resolve_my_address actually succeeds. (For clients, it is likely that
* resolve_my_address will never be called at all). In those cases,
* last_resolved_addr will be 0, and so checking to see whether ip is on the