aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'libpathod/protocols')
-rw-r--r--libpathod/protocols/http.py18
-rw-r--r--libpathod/protocols/http2.py2
2 files changed, 11 insertions, 9 deletions
diff --git a/libpathod/protocols/http.py b/libpathod/protocols/http.py
index 363af0fe..43ef0799 100644
--- a/libpathod/protocols/http.py
+++ b/libpathod/protocols/http.py
@@ -6,6 +6,9 @@ class HTTPProtocol:
def __init__(self, pathod_handler):
self.pathod_handler = pathod_handler
+ self.wire_protocol = http1.HTTP1Protocol(
+ self.pathod_handler
+ )
def make_error_response(self, reason, body):
return language.http.make_error_response(reason, body)
@@ -38,7 +41,7 @@ class HTTPProtocol:
"""
Handle a CONNECT request.
"""
- http1.read_headers(self.pathod_handler.rfile)
+ self.wire_protocol.read_headers()
self.pathod_handler.wfile.write(
'HTTP/1.1 200 Connection established\r\n' +
('Proxy-agent: %s\r\n' % version.NAMEVERSION) +
@@ -66,32 +69,31 @@ class HTTPProtocol:
return self.pathod_handler.handle_http_request, None
def read_request(self, lg):
- line = http1.get_request_line(self.pathod_handler.rfile)
+ line = self.wire_protocol.get_request_line()
if not line:
# Normal termination
return dict()
m = utils.MemBool()
- if m(http1.parse_init_connect(line)):
+ if m(self.wire_protocol.parse_init_connect(line)):
return dict(next_handle=self.handle_http_connect(m.v, lg))
- elif m(http1.parse_init_proxy(line)):
+ elif m(self.wire_protocol.parse_init_proxy(line)):
method, _, _, _, path, httpversion = m.v
- elif m(http1.parse_init_http(line)):
+ elif m(self.wire_protocol.parse_init_http(line)):
method, path, httpversion = m.v
else:
s = "Invalid first line: %s" % repr(line)
lg(s)
return dict(errors=dict(type="error", msg=s))
- headers = http1.read_headers(self.pathod_handler.rfile)
+ headers = self.wire_protocol.read_headers()
if headers is None:
s = "Invalid headers"
lg(s)
return dict(errors=dict(type="error", msg=s))
try:
- body = http1.read_http_body(
- self.pathod_handler.rfile,
+ body = self.wire_protocol.read_http_body(
headers,
None,
method,
diff --git a/libpathod/protocols/http2.py b/libpathod/protocols/http2.py
index d2c269ed..82ec5482 100644
--- a/libpathod/protocols/http2.py
+++ b/libpathod/protocols/http2.py
@@ -12,7 +12,7 @@ class HTTP2Protocol:
def make_error_response(self, reason, body):
return language.http2.make_error_response(reason, body)
- def read_request(self):
+ def read_request(self, lg=None):
self.wire_protocol.perform_server_connection_preface()
return self.wire_protocol.read_request()