commit c50f50cb0984cefabc82bd4f559062dbc893736c Author: Arturo Filastò arturo@filasto.net Date: Sun May 8 19:09:46 2016 +0200
Patch twisted HTTPClientParser to accept HTTP response lines with a missing reason --- ooni/utils/trueheaders.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
diff --git a/ooni/utils/trueheaders.py b/ooni/utils/trueheaders.py index a5b2fe3..5f2b399 100644 --- a/ooni/utils/trueheaders.py +++ b/ooni/utils/trueheaders.py @@ -115,6 +115,26 @@ class HTTPClientParser(_newclient.HTTPClientParser): headers.addRawHeader(name, value)
+ def statusReceived(self, status): + parts = status.split(b' ', 2) + if len(parts) != 3: + # Here we add the extra missing part. + parts.append("XXX") + + try: + statusCode = int(parts[1]) + except ValueError: + raise _newclient.ParseError(u"non-integer status code", status) + + self.response = _newclient.Response._construct( + self.parseVersion(parts[0]), + statusCode, + parts[2], + self.headers, + self.transport, + self.request) + + class HTTP11ClientProtocol(_newclient.HTTP11ClientProtocol): def request(self, request): if self._state != 'QUIESCENT':
tor-commits@lists.torproject.org