aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http/http2
diff options
context:
space:
mode:
Diffstat (limited to 'netlib/http/http2')
-rw-r--r--netlib/http/http2/__init__.py8
-rw-r--r--netlib/http/http2/framereader.py25
-rw-r--r--netlib/http/http2/utils.py37
3 files changed, 0 insertions, 70 deletions
diff --git a/netlib/http/http2/__init__.py b/netlib/http/http2/__init__.py
deleted file mode 100644
index 20cc63a0..00000000
--- a/netlib/http/http2/__init__.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from netlib.http.http2.framereader import read_raw_frame, parse_frame
-from netlib.http.http2.utils import parse_headers
-
-__all__ = [
- "read_raw_frame",
- "parse_frame",
- "parse_headers",
-]
diff --git a/netlib/http/http2/framereader.py b/netlib/http/http2/framereader.py
deleted file mode 100644
index 6a164919..00000000
--- a/netlib/http/http2/framereader.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import codecs
-
-import hyperframe
-from mitmproxy import exceptions
-
-
-def read_raw_frame(rfile):
- header = rfile.safe_read(9)
- length = int(codecs.encode(header[:3], 'hex_codec'), 16)
-
- if length == 4740180:
- raise exceptions.HttpException("Length field looks more like HTTP/1.1:\n{}".format(rfile.read(-1)))
-
- body = rfile.safe_read(length)
- return [header, body]
-
-
-def parse_frame(header, body=None):
- if body is None:
- body = header[9:]
- header = header[:9]
-
- frame, length = hyperframe.frame.Frame.parse_frame_header(header)
- frame.parse_body(memoryview(body))
- return frame
diff --git a/netlib/http/http2/utils.py b/netlib/http/http2/utils.py
deleted file mode 100644
index 164bacc8..00000000
--- a/netlib/http/http2/utils.py
+++ /dev/null
@@ -1,37 +0,0 @@
-from netlib.http import url
-
-
-def parse_headers(headers):
- authority = headers.get(':authority', '').encode()
- method = headers.get(':method', 'GET').encode()
- scheme = headers.get(':scheme', 'https').encode()
- path = headers.get(':path', '/').encode()
-
- headers.pop(":method", None)
- headers.pop(":scheme", None)
- headers.pop(":path", None)
-
- host = None
- port = None
-
- if path == b'*' or path.startswith(b"/"):
- first_line_format = "relative"
- elif method == b'CONNECT': # pragma: no cover
- raise NotImplementedError("CONNECT over HTTP/2 is not implemented.")
- else: # pragma: no cover
- first_line_format = "absolute"
- # FIXME: verify if path or :host contains what we need
- scheme, host, port, _ = url.parse(path)
-
- if authority:
- host, _, port = authority.partition(b':')
-
- if not host:
- host = b'localhost'
-
- if not port:
- port = 443 if scheme == b'https' else 80
-
- port = int(port)
-
- return first_line_format, method, scheme, host, port, path