From 13f030ccb5f513746fd2bb24c0a3921c5f91f121 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 3 Aug 2014 16:25:38 +0200 Subject: [PATCH] suppress SPDY/HTTP2 announcement headers, fix #277 --- libmproxy/protocol/http.py | 23 ++++++++++++----------- libmproxy/utils.py | 6 ------ test/test_utils.py | 6 ------ 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/libmproxy/protocol/http.py b/libmproxy/protocol/http.py index aed538ef9..8e470b018 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 ca48bdf21..33af035f1 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), diff --git a/test/test_utils.py b/test/test_utils.py index 11c26dba8..d99a146df 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -22,12 +22,6 @@ def test_isXml(): assert utils.isXML(" \n