[tor-commits] [flashproxy/master] Use RELAYS in place of options.relays.

infinity0 at torproject.org infinity0 at torproject.org
Mon Oct 28 14:47:40 UTC 2013


commit 96f04c67fe56cdad5459c0f6fdcf92139d068187
Author: David Fifield <david at bamsoftware.com>
Date:   Fri Sep 20 22:46:39 2013 -0700

    Use RELAYS in place of options.relays.
    
    It's not really an option, just a global variable.
---
 facilitator/facilitator |   45 ++++++++++++++++++++++-----------------------
 1 file changed, 22 insertions(+), 23 deletions(-)

diff --git a/facilitator/facilitator b/facilitator/facilitator
index 29714e3..ff3ad2b 100755
--- a/facilitator/facilitator
+++ b/facilitator/facilitator
@@ -27,6 +27,11 @@ MAX_PROXIES_PER_CLIENT = 5
 
 LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
 
+# Dictionary containing Tor relay addresses that we can pass to
+# proxies. It looks like this:
+# {"websocket" : ["1.1.1.1:123"], "obfs3|websocket" : ["3.1.2.3:5555", "1.2.3.4:6666"], "obfs2|websocket" : ["1.2.4.4:5123"]}
+RELAYS = {}
+
 class UnknownTransport(Exception): pass
 
 class options(object):
@@ -39,23 +44,10 @@ class options(object):
     privdrop_username = None
     safe_logging = True
 
-    # Dictionary containing Tor relays that we can pass to
-    # flashproxies. It looks like this:
-    # {"websocket" : ["1.1.1.1:123"], "obfs3|websocket" : ["3.1.2.3:5555", "1.2.3.4:6666"], "obfs2|websocket" : ["1.2.4.4:5123"]}
-    relays = {}
-
-    @staticmethod
-    def num_relays():
-        num_relays = 0
-        for relay_list in options.relays.values():
-            num_relays += len(relay_list)
-
-        return num_relays
-
     @staticmethod
     def add_relay(addr, transport):
-        options.relays.setdefault(transport, [])
-        options.relays[transport].append(fac.format_addr(addr))
+        RELAYS.setdefault(transport, [])
+        RELAYS[transport].append(fac.format_addr(addr))
 
 def usage(f = sys.stdout):
     print >> f, """\
@@ -77,6 +69,13 @@ again. Listen on 127.0.0.1 and port PORT (by default %(port)d).
     "log": DEFAULT_LOG_FILENAME,
 }
 
+def num_relays():
+    num_relays = 0
+    for relay_list in RELAYS.values():
+        num_relays += len(relay_list)
+
+    return num_relays
+
 def parse_transport_chain(spec):
     """Parse a transport chain string and return a tuple of individual
     transports, each of which is a string.
@@ -126,15 +125,15 @@ class TCPReg(object):
         """Return a matching relay addr_spec for this registration. Raise
         UnknownTransport if a relay with a matching transport chain could not be
         found."""
-        if self.transports not in options.relays:
+        if self.transports not in RELAYS:
             raise UnknownTransport("Can't find relay with transport chain: %s" % self.transports)
 
         # Maybe this should be a random pick from the set of all the
         # eligible relays. But let's keep it deterministic for now,
         # and return the first one.
 
-        # return random.choice(options.relays[self.transports])
-        return options.relays[self.transports][0]
+        # return random.choice(RELAYS[self.transports])
+        return RELAYS[self.transports][0]
 
     def __unicode__(self):
         return fac.format_addr((self.host, self.port))
@@ -306,7 +305,7 @@ class Handler(SocketServer.StreamRequestHandler):
 
         if reg:
             log(u"proxy (%s) gets client '%s' (transports: %s) (num relays: %s) (remaining regs: %d/%d)" %
-                (safe_str(repr(proxy_spec)), safe_str(unicode(reg)), reg.transports, options.num_relays(), num_unhandled_regs(), num_regs()))
+                (safe_str(repr(proxy_spec)), safe_str(unicode(reg)), reg.transports, num_relays(), num_unhandled_regs(), num_regs()))
             print >> self.wfile, fac.render_transaction("OK", ("CLIENT", str(reg)), ("RELAY", reg.relay), ("CHECK-BACK-IN", str(check_back_in)))
         else:
             log(u"proxy (%s) gets none" % safe_str(repr(proxy_spec)))
@@ -327,7 +326,7 @@ class Handler(SocketServer.StreamRequestHandler):
         transports = parse_transport_chain(transports_spec)
 
         # See if we have relays that support this transport chain
-        if transports not in options.relays:
+        if transports not in RELAYS:
             log(u"Unrecognized transport chain: %s" % transports)
             self.send_error() # XXX can we tell the flashproxy client of this error?
             return False
@@ -503,11 +502,11 @@ obfs2|websocket 1.4.6.1:4123\
 
     handle_relay_file(options.relay_filename)
 
-    if not options.relays:
+    if not RELAYS:
         print >> sys.stderr, u"Warning: no relays configured."
 
     # Create RegSets for our supported transports
-    for transport in options.relays.keys():
+    for transport in RELAYS.keys():
         outermost_transport = get_outermost_transport(transport)
         if outermost_transport not in REGSETS_IPV4:
             REGSETS_IPV4[outermost_transport] = RegSet()
@@ -526,7 +525,7 @@ obfs2|websocket 1.4.6.1:4123\
     server = Server(addrinfo[4], Handler)
 
     log(u"start on %s" % fac.format_addr(addrinfo[4]))
-    log(u"using relays %s" % str(options.relays))
+    log(u"using relays %s" % str(RELAYS))
 
     if options.daemonize:
         log(u"daemonizing")





More information about the tor-commits mailing list