[tor-commits] [ooni-probe/master] Polyfill the connectProtocol to fix compatibility with Twisted 12.2
art at torproject.org
art at torproject.org
Mon Sep 29 18:18:09 UTC 2014
commit 12cac3d21b8a3c8182e59958bc47219b40d926c3
Author: Arturo Filastò <art at fuffa.org>
Date: Thu Sep 18 11:01:19 2014 +0200
Polyfill the connectProtocol to fix compatibility with Twisted 12.2
---
ooni/settings.py | 4 ++--
ooni/utils/net.py | 10 ++++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/ooni/settings.py b/ooni/settings.py
index 130ce2e..61a9ca1 100644
--- a/ooni/settings.py
+++ b/ooni/settings.py
@@ -4,11 +4,11 @@ import yaml
import getpass
from twisted.internet import defer, reactor
-from twisted.internet.endpoints import TCP4ClientEndpoint, connectProtocol
+from twisted.internet.endpoints import TCP4ClientEndpoint
from os.path import abspath, expanduser
-from ooni.utils.net import ConnectAndCloseProtocol
+from ooni.utils.net import ConnectAndCloseProtocol, connectProtocol
from ooni import geoip
from ooni.utils import Storage, log
from ooni import errors
diff --git a/ooni/utils/net.py b/ooni/utils/net.py
index 58185ab..ad19b49 100644
--- a/ooni/utils/net.py
+++ b/ooni/utils/net.py
@@ -6,6 +6,16 @@ from zope.interface import implements
from twisted.internet import protocol, defer
from twisted.web.iweb import IBodyProducer
+
+try:
+ from twisted.internet.endpoints import connectProtocol
+except ImportError:
+ def connectProtocol(endpoint, protocol):
+ class OneShotFactory(protocol.Factory):
+ def buildProtocol(self, addr):
+ return protocol
+ return endpoint.connect(OneShotFactory())
+
from ooni.utils import log
# if sys.platform.system() == 'Windows':
More information about the tor-commits
mailing list