[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [bridgedb/develop] Update the Bridge's transports in updateFromExtraInfoDescriptor().
commit 122ad409aa0dd84563d580e5002cecb1cc20d25f
Author: Isis Lovecruft <isis@xxxxxxxxxxxxxx>
Date: Fri Dec 5 18:55:14 2014 -0800
Update the Bridge's transports in updateFromExtraInfoDescriptor().
---
lib/bridgedb/bridges.py | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/lib/bridgedb/bridges.py b/lib/bridgedb/bridges.py
index d2e528d..fede979 100644
--- a/lib/bridgedb/bridges.py
+++ b/lib/bridgedb/bridges.py
@@ -1295,3 +1295,34 @@ class Bridge(object):
return
self.descriptors['extrainfo'] = descriptor
+
+ updatedTransports = []
+
+ for transport in self.transports:
+ for methodname, kitchenSink in descriptor.transport:
+ if transport.methodname == methodname:
+ if transport.address == kitchenSink[0]:
+ logging.info(
+ "Updating %s pluggable transport for bridge %s." %
+ (methodname, safelog.logSafely(self.fingerprint)))
+ updatedTransports.append(transport)
+ transport.updateFromStemTransport(self.fingerprint,
+ methodname,
+ kitchenSink)
+ else:
+ logging.info(
+ ("Received new %s pluggable transport for bridge "
+ "%s.") %
+ (methodname, safelog.logSafely(self.fingerprint)))
+ pt = PluggableTransport()
+ pt.updateFromStemTransport(self.fingerprint,
+ methodname,
+ kitchenSink)
+ updatedTransports.append(pt)
+ self.transports.append(pt)
+
+ dead = set(self.transports).difference(set(updatedTransports))
+ logging.info("The following transports for bridge %s died: %s"
+ % (self, ' '.join(dead)))
+ for died in dead:
+ self.transports.remove(died)
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits