[tor-commits] [ooni-probe/master] Proper fix for issue reported by @anadahz in #401

art at torproject.org art at torproject.org
Fri Nov 20 14:42:01 UTC 2015


commit d362048243be4990d43d4fda211d29bb053dcdae
Author: Simone Basso <bassosimone at gmail.com>
Date:   Tue Nov 17 15:44:03 2015 +0100

    Proper fix for issue reported by @anadahz in #401
---
 ooni/utils/trueheaders.py |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/ooni/utils/trueheaders.py b/ooni/utils/trueheaders.py
index ac73970..149b440 100644
--- a/ooni/utils/trueheaders.py
+++ b/ooni/utils/trueheaders.py
@@ -20,6 +20,9 @@ SOCKS5ClientFactory.noisy = False
 
 from ooni.utils import log
 
+import twisted
+from twisted.python.versions import Version
+
 
 class TrueHeaders(http_headers.Headers):
     def __init__(self, rawHeaders=None):
@@ -160,7 +163,19 @@ class TrueHeadersAgent(client.Agent):
         self._pool = HTTPConnectionPool(reactor, False)
 
 
+_twisted_15_0 = Version('twisted', 15, 0, 0)
+
+
 class TrueHeadersSOCKS5Agent(SOCKS5Agent):
     def __init__(self, *args, **kw):
         super(TrueHeadersSOCKS5Agent, self).__init__(*args, **kw)
-        self._pool = HTTPConnectionPool(reactor, False)
+        pool = HTTPConnectionPool(reactor, False)
+        #
+        # With Twisted > 15.0 txsocksx wraps the twisted agent using a
+        # wrapper class, hence we must set the _pool attribute in the
+        # inner class rather than into its external wrapper.
+        #
+        if twisted.version >= _twisted_15_0:
+            self._wrappedAgent._pool = pool
+        else:
+            self._pool = pool





More information about the tor-commits mailing list