[tor-commits] [sbws/maint-1.1] fix:scanner: Move as_entry/as_exit into one function

juga at torproject.org juga at torproject.org
Tue Feb 23 07:22:33 UTC 2021


commit 8846c32a500515fc3d5d094a6ff5b0777f2c30fb
Author: juga0 <juga at riseup.net>
Date:   Tue Feb 9 12:57:36 2021 +0000

    fix:scanner: Move as_entry/as_exit into one function
    
    since they're similar code
---
 sbws/core/scanner.py | 39 +++++++++++++++++++--------------------
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/sbws/core/scanner.py b/sbws/core/scanner.py
index 40e3093..97829f4 100644
--- a/sbws/core/scanner.py
+++ b/sbws/core/scanner.py
@@ -266,25 +266,24 @@ def error_no_helper(relay, dest, our_nick=""):
         ]
 
 
-def create_path_relay_as_entry(relay, dest, rl, cb):
-    helper = _pick_ideal_second_hop(
-        relay, dest, rl, cb.controller, is_exit=True)
-    if not helper:
-        return error_no_helper(relay, dest)
-    circ_fps = [relay.fingerprint, helper.fingerprint]
-    nicknames = [relay.nickname, helper.nickname]
-    return circ_fps, nicknames, helper.exit_policy
-
-
-def create_path_relay_as_exit(relay, dest, rl, cb):
-    helper = _pick_ideal_second_hop(
-        relay, dest, rl, cb.controller, is_exit=False)
+def create_path_relay(relay, dest, rl, cb, relay_as_entry=True):
+    if relay_as_entry:
+        helper = _pick_ideal_second_hop(
+            relay, dest, rl, cb.controller, is_exit=True)
+    else:
+        helper = _pick_ideal_second_hop(
+            relay, dest, rl, cb.controller, is_exit=False)
     if not helper:
         return error_no_helper(relay, dest)
-    circ_fps = [helper.fingerprint, relay.fingerprint]
-    # stored for debugging
-    nicknames = [helper.nickname, relay.nickname]
-    return circ_fps, nicknames, relay.exit_policy
+    if relay_as_entry:
+        circ_fps = [relay.fingerprint, helper.fingerprint]
+        nicknames = [relay.nickname, helper.nickname]
+        exit_policy = helper.exit_policy
+    else:
+        circ_fps = [helper.fingerprint, relay.fingerprint]
+        nicknames = [helper.nickname, relay.nickname]
+        exit_policy = relay.exit_policy
+    return circ_fps, nicknames, exit_policy
 
 
 def error_no_circuit(circ_fps, nicknames, reason, relay, dest, our_nick):
@@ -348,10 +347,10 @@ def measure_relay(args, conf, destinations, cb, rl, relay):
     # the relay as an exit, if it can exit to some IPs.
     if relay.is_exit_not_bad_allowing_port(dest.port):
         circ_fps, nicknames, exit_policy = \
-            create_path_relay_as_exit(relay, dest, rl, cb)
+            create_path_relay(relay, dest, rl, cb, relay_as_entry=False)
     else:
         circ_fps, nicknames, exit_policy = \
-            create_path_relay_as_entry(relay, dest, rl, cb)
+            create_path_relay(relay, dest, rl, cb)
 
     # Build the circuit
     circ_id, reason = cb.build_circuit(circ_fps)
@@ -380,7 +379,7 @@ def measure_relay(args, conf, destinations, cb, rl, relay):
             "with it as entry.", relay.fingerprint, relay.nickname,
             exit_policy, dest.url, circ_fps, nicknames, usable_data)
         circ_fps, nicknames, exit_policy = \
-            create_path_relay_as_entry(relay, dest, rl, cb)
+            create_path_relay(relay, dest, rl, cb)
         circ_id, reason = cb.build_circuit(circ_fps)
         if not circ_id:
             log.warning(





More information about the tor-commits mailing list