[tor-commits] [bridgedb/master] 4568 - Add filter for bridges with transports

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


commit c8c12c79556d8e4e16029f04672b20ffcf6ff07b
Author: aagbsn <aagbsn at extc.org>
Date:   Wed Jun 6 01:08:59 2012 -0700

    4568 - Add filter for bridges with transports
    
    Adds a filter to select bridges with transport specified by name.
---
 lib/bridgedb/Filters.py |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/lib/bridgedb/Filters.py b/lib/bridgedb/Filters.py
index 5654cb5..435845a 100644
--- a/lib/bridgedb/Filters.py
+++ b/lib/bridgedb/Filters.py
@@ -75,3 +75,21 @@ def filterBridgesByOnlyIP6(bridge):
     if type(k) is IPv6Address:
         return True
     return False
+
+def filterBridgesByTransport(methodname, addressClass):
+    assert (addressClass) in (IPv4Address, IPv6Address)
+    ruleset = frozenset([methodname, addressClass])
+    try:
+        return funcs[ruleset]
+    except KeyError:
+        def f(bridge):
+            for transport in bridge.transports:
+                # ignore method name case
+                if isinstance(transport.address, addressClass) and \
+                transport.methodname.lower() == methodname.lower(): return True
+            return False
+        f.__name__ = "filterBridgesByTransport(%s,%s)" % (methodname,
+                type(addressClass))
+        setattr(f, "description", "transport=%s"%methodname)
+        funcs[ruleset] = f
+        return f





More information about the tor-commits mailing list