[tor-commits] [bridgedb/master] 5027 - parse bridge block list in Main.py

aagbsn at torproject.org aagbsn at torproject.org
Sat Mar 16 23:46:31 UTC 2013


commit 22248927f70b2ec2b7d7271e42b6ba48f04d10c1
Author: aagbsn <aagbsn at extc.org>
Date:   Sun Jul 1 04:22:40 2012 -0700

    5027 - parse bridge block list in Main.py
---
 lib/bridgedb/Main.py |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/lib/bridgedb/Main.py b/lib/bridgedb/Main.py
index d8a5c3c..4faec57 100644
--- a/lib/bridgedb/Main.py
+++ b/lib/bridgedb/Main.py
@@ -160,12 +160,9 @@ def load(cfg, splitter, clear=False):
     """Read all the bridge files from cfg, and pass them into a splitter
        object.
     """
-    countryblock = Bridges.CountryBlock()
     if clear:
         logging.info("Clearing old bridges")
         splitter.clear()
-        logging.info("Clearing old blocked bridges")
-        countryblock.clear() 
     logging.info("Loading bridges")
     status = {}
     addresses = {}
@@ -176,11 +173,6 @@ def load(cfg, splitter, clear=False):
             addresses[ID] = or_addresses
             #transports[ID] = transports
         f.close()
-    if hasattr(cfg, "COUNTRY_BLOCK_FILE"):
-        f = open(cfg.COUNTRY_BLOCK_FILE, 'r')
-        for fingerprint, countryCode in Bridges.parseCountryBlockFile(f):
-            countryblock.insert(fingerprint, countryCode)
-        f.close() 
     bridges = {} 
     for fname in cfg.BRIDGE_FILES:
         f = open(fname, 'r')
@@ -191,8 +183,6 @@ def load(cfg, splitter, clear=False):
                 running, stable = s
                 bridge.setStatus(running=running, stable=stable)
             bridge.or_addresses = addresses.get(bridge.getID())
-            bridge.setBlockingCountries(
-                    countryblock.getBlockingCountries(bridge.fingerprint)) 
             splitter.insert(bridge)
         f.close()
     # read pluggable transports from extra-info document
@@ -205,6 +195,21 @@ def load(cfg, splitter, clear=False):
             if bridges[ID].running:
                 bridges[ID].transports.append(Bridges.PluggableTransport(bridges[ID],
                     method_name, address, port, argdict))
+    if hasattr(cfg, "COUNTRY_BLOCK_FILE"):
+        f = open(cfg.COUNTRY_BLOCK_FILE, 'r')
+        for ID,address,portlist,countries in Bridges.parseCountryBlockFile(f):
+            if ID in bridges.keys() and bridges[ID].running:
+                for port in portlist:
+                    logging.debug(":.( Tears! %s blocked %s %s:%s" % (
+                        countries, bridges[ID].fingerprint, address, port))
+                    try:
+                        bridges[ID].blockingCountries["%s:%s" % \
+                                (address, port)].update(countries)
+                    except KeyError:
+                        bridges[ID].blockingCountries["%s:%s" % \
+                                (address, port)] = set(countries)
+        f.close() 
+
     bridges = None
 
 def loadProxyList(cfg):





More information about the tor-commits mailing list