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

[tor-commits] [bridgedb/master] Only add a bridge to the splitter if it is new.



commit 92eb6fe9e7d4e1e7cbb72687b9f41f5f827fa182
Author: Matthew Finkel <Matthew.Finkel@xxxxxxxxx>
Date:   Tue Mar 4 03:59:41 2014 +0000

    Only add a bridge to the splitter if it is new.
    
    If it's not new then we want to overwrite the old instance.
    Unconditionally appending to to the splitter results in duplicate
    bridges.
    
    Closes #9264
---
 lib/bridgedb/Bridges.py |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/bridgedb/Bridges.py b/lib/bridgedb/Bridges.py
index e5d5921..1dc4f4e 100644
--- a/lib/bridgedb/Bridges.py
+++ b/lib/bridgedb/Bridges.py
@@ -1250,7 +1250,15 @@ class FilteredBridgeSplitter(BridgeHolder):
                 % Util.logSafely(bridge.fingerprint))
             return
 
-        self.bridges.append(bridge)
+        index = 0
+        logging.debug("Inserting %s into %s ring" % (bridge.fingerprint, self.key))
+        for old_bridge in self.bridges:
+            if bridge.fingerprint == old_bridge.fingerprint:
+                self.bridges[index] = bridge
+                break
+            index += 1
+        else:
+            self.bridges.append(bridge)
         for ringname, (filterFn, subring) in self.filterRings.items():
             if filterFn(bridge):
                 subring.insert(bridge)



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