diff options
Diffstat (limited to 'libmproxy')
-rw-r--r-- | libmproxy/protocol/http.py | 23 | ||||
-rw-r--r-- | libmproxy/utils.py | 6 |
2 files changed, 12 insertions, 17 deletions
diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py index aed538ef..8e470b01 100644 --- a/libmproxy/protocol/http.py +++ b/libmproxy/protocol/http.py @@ -320,15 +320,13 @@ class HTTPRequest(HTTPMessage): def _assemble_headers(self): headers = self.headers.copy() - utils.del_all( - headers, - [ - 'Proxy-Connection', - 'Keep-Alive', - 'Connection', - 'Transfer-Encoding' - ] - ) + for k in ['Proxy-Connection', + 'Keep-Alive', + 'Connection', + 'Transfer-Encoding']: + del headers[k] + if headers["Upgrade"] == ["h2c"]: # Suppress HTTP2 https://http2.github.io/http2-spec/index.html#discover-http + del headers["Upgrade"] if not 'host' in headers: headers["Host"] = [utils.hostport(self.scheme, self.host or self.flow.server_conn.address.host, @@ -636,9 +634,12 @@ class HTTPResponse(HTTPMessage): def _assemble_headers(self, preserve_transfer_encoding=False): headers = self.headers.copy() - utils.del_all(headers, ['Proxy-Connection']) + for k in ['Proxy-Connection', + 'Alternate-Protocol', + 'Alt-Svc']: + del headers[k] if not preserve_transfer_encoding: - utils.del_all(headers, ['Transfer-Encoding']) + del headers['Transfer-Encoding'] if self.content: headers["Content-Length"] = [str(len(self.content))] diff --git a/libmproxy/utils.py b/libmproxy/utils.py index ca48bdf2..33af035f 100644 --- a/libmproxy/utils.py +++ b/libmproxy/utils.py @@ -64,12 +64,6 @@ def urlencode(s): return urllib.urlencode(s, False) -def del_all(dict, keys): - for key in keys: - if key in dict: - del dict[key] - - def pretty_size(size): suffixes = [ ("B", 2**10), |