diff options
author | Maximilian Hils <git@maximilianhils.com> | 2015-08-18 14:15:08 +0200 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2015-08-18 14:15:08 +0200 |
commit | 96de7ad562da9b5110059988b851c66b51874510 (patch) | |
tree | a8696a74835638376453c576ecf502cbf74373c0 /libmproxy/protocol2/root_context.py | |
parent | 99129ab5a15bc4708eda80e4f56b46bb0f1efa86 (diff) | |
download | mitmproxy-96de7ad562da9b5110059988b851c66b51874510.tar.gz mitmproxy-96de7ad562da9b5110059988b851c66b51874510.tar.bz2 mitmproxy-96de7ad562da9b5110059988b851c66b51874510.zip |
various fixes
Diffstat (limited to 'libmproxy/protocol2/root_context.py')
-rw-r--r-- | libmproxy/protocol2/root_context.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libmproxy/protocol2/root_context.py b/libmproxy/protocol2/root_context.py index 6ba6ca9a..f8a645b0 100644 --- a/libmproxy/protocol2/root_context.py +++ b/libmproxy/protocol2/root_context.py @@ -1,4 +1,5 @@ from __future__ import (absolute_import, print_function, division) +import string from .messages import Kill from .rawtcp import RawTcpLayer @@ -36,6 +37,8 @@ class RootContext(object): d[2] in ('\x00', '\x01', '\x02', '\x03') ) + is_ascii = all(x in string.ascii_uppercase for x in d) + # TODO: build is_http2_magic check here, maybe this is an easy way to detect h2c if not d: @@ -43,10 +46,11 @@ class RootContext(object): if is_tls_client_hello: return TlsLayer(top_layer, True, True) - elif isinstance(top_layer, TlsLayer) and top_layer.client_conn.get_alpn_proto_negotiated() == 'h2': + elif isinstance(top_layer, TlsLayer) and is_ascii: + if top_layer.client_conn.get_alpn_proto_negotiated() == 'h2': return Http2Layer(top_layer, 'transparent') - elif isinstance(top_layer, TlsLayer) and isinstance(top_layer.ctx, Http1Layer): - return Http1Layer(top_layer, "transparent") + else: + return Http1Layer(top_layer, "transparent") else: return RawTcpLayer(top_layer) |