aboutsummaryrefslogtreecommitdiffstats
path: root/netlib/http/http1/read.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2016-05-31 21:03:42 +1200
committerAldo Cortesi <aldo@corte.si>2016-05-31 21:03:42 +1200
commita7abf8b731658b4e7ed8705f7a94a6a62f08d51d (patch)
treecb86e2e483530f5e1e8b0c5d60839de21fcf7390 /netlib/http/http1/read.py
parent2f526393d29b6a03e43d1f6240175b4dfb13dc7d (diff)
parent4da125b6a098cc0fd8b1fd2878584beb5df75c6c (diff)
downloadmitmproxy-a7abf8b731658b4e7ed8705f7a94a6a62f08d51d.tar.gz
mitmproxy-a7abf8b731658b4e7ed8705f7a94a6a62f08d51d.tar.bz2
mitmproxy-a7abf8b731658b4e7ed8705f7a94a6a62f08d51d.zip
Merge pull request #1179 from cortesi/reorg
Start reorganising */utils.py
Diffstat (limited to 'netlib/http/http1/read.py')
-rw-r--r--netlib/http/http1/read.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/netlib/http/http1/read.py b/netlib/http/http1/read.py
index d30976bd..5783ec67 100644
--- a/netlib/http/http1/read.py
+++ b/netlib/http/http1/read.py
@@ -6,6 +6,19 @@ import re
from ... import utils
from ...exceptions import HttpReadDisconnect, HttpSyntaxException, HttpException, TcpDisconnect
from .. import Request, Response, Headers
+from .. import url
+
+
+def get_header_tokens(headers, key):
+ """
+ Retrieve all tokens for a header key. A number of different headers
+ follow a pattern where each header line can containe comma-separated
+ tokens, and headers can be set multiple times.
+ """
+ if key not in headers:
+ return []
+ tokens = headers[key].split(",")
+ return [token.strip() for token in tokens]
def read_request(rfile, body_size_limit=None):
@@ -147,7 +160,7 @@ def connection_close(http_version, headers):
"""
# At first, check if we have an explicit Connection header.
if "connection" in headers:
- tokens = utils.get_header_tokens(headers, "connection")
+ tokens = get_header_tokens(headers, "connection")
if "close" in tokens:
return True
elif "keep-alive" in tokens:
@@ -240,7 +253,7 @@ def _read_request_line(rfile):
scheme, path = None, None
else:
form = "absolute"
- scheme, host, port, path = utils.parse_url(path)
+ scheme, host, port, path = url.parse(path)
_check_http_version(http_version)
except ValueError: