commit d27d79e9be9a48fd15991eb023d6f96082db272a Author: Damian Johnson atagar@torproject.org Date: Fri Jul 10 09:29:27 2015 -0700
Drop is_exiting_allowed() helper
Stem's exit policies do this. The only wrinkle is DNS. We had a hack around this due to funky tor behavior but ticket #965 is now pretty old, so we can probably drop it. --- nyx/connections/conn_entry.py | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-)
diff --git a/nyx/connections/conn_entry.py b/nyx/connections/conn_entry.py index dbfc097..73fe17d 100644 --- a/nyx/connections/conn_entry.py +++ b/nyx/connections/conn_entry.py @@ -440,7 +440,10 @@ class ConnectionLine(entries.ConnectionPanelLine): if destination_fingerprint == 'UNKNOWN': # Not a known relay. This might be an exit connection.
- if is_exiting_allowed(controller, self.foreign.get_address(), self.foreign.get_port() if self.foreign.get_port() else None): + exit_policy = controller.get_exit_policy(None) + port = self.foreign.get_port() if self.foreign.get_port() else None + + if exit_policy and exit_policy.can_exit_to(self.foreign.get_address(), port): self.cached_type = Category.EXIT elif self._possible_client or self._possible_directory: # This belongs to a known relay. If we haven't eliminated ourselves as @@ -888,31 +891,6 @@ class ConnectionLine(entries.ConnectionPanelLine): return destination_address[:max_length]
-def is_exiting_allowed(controller, ip_address, port): - """ - Checks if the given destination can be exited to by this relay, returning - True if so and False otherwise. - """ - - result = False - - if controller.is_alive(): - # If we allow any exiting then this could be relayed DNS queries, - # otherwise the policy is checked. Tor still makes DNS connections to - # test when exiting isn't allowed, but nothing is relayed over them. - # I'm registering these as non-exiting to avoid likely user confusion: - # https://trac.torproject.org/projects/tor/ticket/965 - - our_policy = controller.get_exit_policy(None) - - if our_policy and our_policy.is_exiting_allowed() and port == '53': - result = True - else: - result = our_policy and our_policy.can_exit_to(ip_address, port) - - return result - - class FingerprintTracker: def __init__(self): # mappings of ip -> [(port, fingerprint), ...]
tor-commits@lists.torproject.org