summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2006-10-03 05:45:58 +0000
committerRoger Dingledine <arma@torproject.org>2006-10-03 05:45:58 +0000
commit246fecb585cef56af5a0c4bf08365d2d040c3c73 (patch)
treec3290c2b7254d7ae3525c973c6edfbea2db44488
parent4c56ac93ca800a6617123f76f52a4c3df90e594c (diff)
downloadtor-246fecb585cef56af5a0c4bf08365d2d040c3c73.tar.gz
tor-246fecb585cef56af5a0c4bf08365d2d040c3c73.zip
the other half of the is_local_IP patch
svn:r8581
-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 a8ac76e42a..f2eda22dca 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 a4c53d4ca0..7b76288306 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