commit 4b1c96d43520b2fd6df72e7e4845c879677d4c63 Author: Arturo Filastò art@fuffa.org Date: Mon Nov 26 13:15:02 2012 +0100
Add logPrefixes to txagentwithsocks * Improve http test template --- ooni/templates/httpt.py | 9 +++++---- ooni/utils/txagentwithsocks.py | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/ooni/templates/httpt.py b/ooni/templates/httpt.py index 2a368a0..480d011 100644 --- a/ooni/templates/httpt.py +++ b/ooni/templates/httpt.py @@ -66,6 +66,7 @@ class HTTPTest(NetTestCase): self.control_agent = Agent(reactor, sockshost="127.0.0.1", socksport=config.advanced.tor_socksport)
+ self.report['socksproxy'] = None sockshost, socksport = (None, None) if self.localOptions['socksproxy']: try: @@ -100,7 +101,7 @@ class HTTPTest(NetTestCase): def processInputs(self): pass
- def addToReport(self, request, response=None): + def addToReport(self, request, response=None, response_body=None): """ Adds to the report the specified request and response.
@@ -125,12 +126,12 @@ class HTTPTest(NetTestCase): 'headers': list(response.headers.getAllRawHeaders()), 'body': response_body, 'code': response.code - } + } self.report['requests'].append(request_response)
def _processResponseBody(self, response_body, request, response, body_processor): log.debug("Processing response body") - self.addToReport(request, response) + self.addToReport(request, response, response_body) if body_processor: body_processor(response_body) else: @@ -200,10 +201,10 @@ class HTTPTest(NetTestCase): """ if not response: log.err("Got no response for request %s" % request) + self.addToReport(request, response) return else: log.debug("Got response %s" % response) - return
if str(response.code).startswith('3'): self.processRedirect(response.headers.getRawHeaders('Location')[0]) diff --git a/ooni/utils/txagentwithsocks.py b/ooni/utils/txagentwithsocks.py index 49e5a3c..ffaa733 100644 --- a/ooni/utils/txagentwithsocks.py +++ b/ooni/utils/txagentwithsocks.py @@ -32,6 +32,9 @@ class SOCKSv5ClientProtocol(_WrappingProtocol): self._port = port self.ready = False
+ def logPrefix(self): + return 'SOCKSv5ClientProtocol' + def socks_state_0(self, data): # error state self._connectedDeferred.errback(SOCKSError(0x00)) @@ -90,6 +93,9 @@ class SOCKSv5ClientFactory(_WrappingFactory): _WrappingFactory.__init__(self, wrappedFactory) self._host, self._port = host, port
+ def logPrefix(self): + return 'SOCKSv5ClientFactory' + def buildProtocol(self, addr): try: proto = self._wrappedFactory.buildProtocol(addr) @@ -113,6 +119,9 @@ class SOCKS5ClientEndpoint(object): self._timeout = timeout self._bindAddress = bindAddress
+ def logPrefix(self): + return 'SOCKSv5ClientEndpoint' + def connect(self, protocolFactory): try: wf = SOCKSv5ClientFactory(protocolFactory, self._host, self._port) @@ -123,6 +132,7 @@ class SOCKS5ClientEndpoint(object): except: return defer.fail()
+ class TrueHeaders(http_headers.Headers): def __init__(self, rawHeaders=None): self._rawHeaders = dict() @@ -183,6 +193,9 @@ class TrueHeaders(http_headers.Headers): return default
class HTTPClientParser(_newclient.HTTPClientParser): + def logPrefix(self): + return 'HTTPClientParser' + def connectionMade(self): self.headers = TrueHeaders() self.connHeaders = TrueHeaders() @@ -196,7 +209,6 @@ class HTTPClientParser(_newclient.HTTPClientParser): headers = self.headers headers.addRawHeader(name, value)
- class HTTP11ClientProtocol(_newclient.HTTP11ClientProtocol): def request(self, request): if self._state != 'QUIESCENT': @@ -261,6 +273,9 @@ class Agent(client.Agent): self._sockshost = sockshost self._socksport = socksport
+ def logPrefix(self): + return 'SOCKSAgent' + def request(self, method, uri, headers=None, bodyProducer=None): if (uri.startswith('shttp') or uri.startswith('httpo')) and not HTTPConnectionPool: log.err("Requests over SOCKS are supported only with versions of Twisted >= 12.1.0") @@ -297,7 +312,6 @@ class Agent(client.Agent): parsedURI.host, parsedURI.port))
d = self._pool.getConnection(key, endpoint) - print headers._rawHeaders def cbConnected(proto): return proto.request( Request(method, requestPath, headers, bodyProducer,
tor-commits@lists.torproject.org