commit b2eeda230bbcd82eaee419f9aced709274da2012 Author: juga0 juga@riseup.net Date: Thu Nov 22 14:25:50 2018 +0000
destination, scanner: choose exits with same flags
The flags are: not having a badflag and the policy allows to exit to a port. --- sbws/core/scanner.py | 7 +++---- sbws/lib/destination.py | 3 +-- sbws/lib/relaylist.py | 1 - 3 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/sbws/core/scanner.py b/sbws/core/scanner.py index 6188a19..6c63b68 100644 --- a/sbws/core/scanner.py +++ b/sbws/core/scanner.py @@ -136,8 +136,8 @@ def _pick_ideal_second_hop(relay, dest, rl, cont, is_exit): destination **dest**, pick a second relay that is or is not an exit according to **is_exit**. ''' - candidates = [] - candidates.extend(rl.exits if is_exit else rl.non_exits) + candidates = rl.exits_not_bad_allowing_port(dest.port) if is_exit \ + else rl.non_exits if not len(candidates): return None log.debug('Picking a 2nd hop to measure %s from %d choices. is_exit=%s', @@ -177,8 +177,7 @@ 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) and \ - relay not in rl.bad_exits: + if relay.is_exit_not_bad_allowing_port(dest.port): helper = _pick_ideal_second_hop( relay, dest, rl, cb.controller, is_exit=False) if helper: diff --git a/sbws/lib/destination.py b/sbws/lib/destination.py index d01fd04..ddbe6c8 100644 --- a/sbws/lib/destination.py +++ b/sbws/lib/destination.py @@ -179,8 +179,7 @@ class DestinationList: session = requests_utils.make_session(cont, timeout) usable_dests = [] for dest in self._all_dests: - possible_exits = [e for e in self._rl.exits - if e.can_exit_to(dest.hostname, dest.port)] + possible_exits = self._rl.exits_not_bad_allowing_port(dest.port) # Keep the fastest 10% of exits, or 3, whichever is larger num_keep = int(max(3, len(possible_exits) * 0.1)) possible_exits = sorted( diff --git a/sbws/lib/relaylist.py b/sbws/lib/relaylist.py index 28802a1..17761a6 100644 --- a/sbws/lib/relaylist.py +++ b/sbws/lib/relaylist.py @@ -231,7 +231,6 @@ class RelayList: self._relays = self._init_relays() self._last_refresh = time.time()
- def exits_not_bad_allowing_port(self, port): return [r for r in self.exits if r.is_exit_not_bad_allowing_port(port)]
tor-commits@lists.torproject.org