aboutsummaryrefslogtreecommitdiffstats
path: root/mitmproxy/connections.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-12-20 16:49:38 +0100
committerMaximilian Hils <git@maximilianhils.com>2016-12-20 16:49:38 +0100
commitf997b7fe14d40b8f5be61511e6b4956d92ef21db (patch)
tree72a01ab3e4ae6b2a6ba5524496d5ddb7b5e90fb9 /mitmproxy/connections.py
parentfc5783c20e86122ca687aa41b00ca29bc852cc0c (diff)
downloadmitmproxy-f997b7fe14d40b8f5be61511e6b4956d92ef21db.tar.gz
mitmproxy-f997b7fe14d40b8f5be61511e6b4956d92ef21db.tar.bz2
mitmproxy-f997b7fe14d40b8f5be61511e6b4956d92ef21db.zip
always decode alpn where required
Diffstat (limited to 'mitmproxy/connections.py')
-rw-r--r--mitmproxy/connections.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/mitmproxy/connections.py b/mitmproxy/connections.py
index fc637420..9c4bca2f 100644
--- a/mitmproxy/connections.py
+++ b/mitmproxy/connections.py
@@ -6,6 +6,7 @@ import os
from mitmproxy import stateobject
from mitmproxy import certs
from mitmproxy.net import tcp
+from mitmproxy.utils import strutils
class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
@@ -52,9 +53,15 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
return bool(self.connection) and not self.finished
def __repr__(self):
+ if self.alpn_proto_negotiated:
+ alpn = "[ALPN: {}] ".format(
+ strutils.bytes_to_escaped_str(self.alpn_proto_negotiated)
+ )
+ else:
+ alpn = ""
return "<ClientConnection: {ssl}{alpn}{address}>".format(
ssl="[ssl] " if self.ssl_established else "",
- alpn="[ALPN: {}] ".format(self.alpn_proto_negotiated) if self.alpn_proto_negotiated else "",
+ alpn=alpn,
address=repr(self.address)
)
@@ -71,7 +78,7 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
timestamp_end=float,
sni=str,
cipher_name=str,
- alpn_proto_negotiated=str,
+ alpn_proto_negotiated=bytes,
tls_version=str,
)
@@ -162,9 +169,15 @@ class ServerConnection(tcp.TCPClient, stateobject.StateObject):
ssl = "[ssl] "
else:
ssl = ""
+ if self.alpn_proto_negotiated:
+ alpn = "[ALPN: {}] ".format(
+ strutils.bytes_to_escaped_str(self.alpn_proto_negotiated)
+ )
+ else:
+ alpn = ""
return "<ServerConnection: {ssl}{alpn}{address}>".format(
ssl=ssl,
- alpn="[ALPN: {}] ".format(self.alpn_proto_negotiated) if self.alpn_proto_negotiated else "",
+ alpn=alpn,
address=repr(self.address)
)
@@ -179,7 +192,7 @@ class ServerConnection(tcp.TCPClient, stateobject.StateObject):
ssl_established=bool,
cert=certs.SSLCert,
sni=str,
- alpn_proto_negotiated=str,
+ alpn_proto_negotiated=bytes,
timestamp_start=float,
timestamp_tcp_setup=float,
timestamp_ssl_setup=float,