[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [compass/master] Iterate all relays over each filter



commit 9bb37cc3e7f541474f349d5f5f30fddb88b856d5
Author: Sathyanarayanan Gunasekaran <gsathya.ceg@xxxxxxxxx>
Date:   Mon Aug 20 13:53:55 2012 +0530

    Iterate all relays over each filter
    
    Previously all the filters were iterated over each
    relay. The order of the filter applied couldn't be
    controlled with this approach. Now, we can specify
    the order in which the relays are to be filtered in.
---
 compass.py |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/compass.py b/compass.py
index 971b2e0..544306e 100755
--- a/compass.py
+++ b/compass.py
@@ -130,14 +130,12 @@ class RelayStats(object):
             return self._relays
 
         self._relays = {}
-        for relay in self.data['relays']:
-            accepted = True
-            for f in self._filters:
-                if not f.accept(relay):
-                    accepted = False
-                    break
-            if accepted:
-                self.add_relay(relay)
+        relays = self.data['relays']
+        for f in self._filters:
+            relays = filter(f.accept, relays)
+
+        for relay in relays:
+            self.add_relay(relay)
         return self._relays
 
     def _create_filters(self, options):



_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits