[tor-commits] [sbws/master] Measure Exit+BadExit relays as non-exits
pastly at torproject.org
pastly at torproject.org
Wed Jul 11 15:05:40 UTC 2018
commit 305e75d40b12054e23ac19eba2e4828f48bd7252
Author: Matt Traudt <sirmatt at ksu.edu>
Date: Fri Jun 29 09:17:59 2018 -0400
Measure Exit+BadExit relays as non-exits
---
CHANGELOG.md | 4 ++++
sbws/core/scanner.py | 3 ++-
sbws/lib/relaylist.py | 4 ++++
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 77fb16a..1c3e372 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [Unreleased]
+### Fixed
+
+- Measure relays that have both Exit and BadExit as non-exits, which is how
+ clients would use them. (GH#217)
## [0.5.0] - 2018-06-26
diff --git a/sbws/core/scanner.py b/sbws/core/scanner.py
index 25c1dd3..249d8d4 100644
--- a/sbws/core/scanner.py
+++ b/sbws/core/scanner.py
@@ -178,7 +178,8 @@ def measure_relay(args, conf, destinations, cb, rl, relay):
# exit, then pick a non-exit. Otherwise pick an exit.
helper = None
circ_fps = None
- if relay.can_exit_to(dest.hostname, dest.port):
+ if relay.can_exit_to(dest.hostname, dest.port) and \
+ relay not in rl.bad_exits:
helper = _pick_ideal_second_hop(
relay, dest, rl, cb.controller, is_exit=False)
if helper:
diff --git a/sbws/lib/relaylist.py b/sbws/lib/relaylist.py
index ddd982a..c3bb745 100644
--- a/sbws/lib/relaylist.py
+++ b/sbws/lib/relaylist.py
@@ -164,6 +164,10 @@ class RelayList:
return self._relays_with_flag(Flag.EXIT)
@property
+ def bad_exits(self):
+ return self._relays_without_flag(Flag.BADEXIT)
+
+ @property
def non_exits(self):
return self._relays_without_flag(Flag.EXIT)
More information about the tor-commits
mailing list