aboutsummaryrefslogtreecommitdiffstats
path: root/libmproxy/proxy/connection.py
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-08-15 20:22:45 +0200
committerMaximilian Hils <git@maximilianhils.com>2015-08-15 20:22:45 +0200
commita175572447fad5f992e1f0c086386f03bf9cd6fb (patch)
tree34aced46a957890046199b8081c3d1d34169187e /libmproxy/proxy/connection.py
parent2a15479cdbda07a4a99f56f6090e479decbeb17c (diff)
parenta9dd82c986be54d82f6ce9c7b65473f2b052cbe8 (diff)
downloadmitmproxy-a175572447fad5f992e1f0c086386f03bf9cd6fb.tar.gz
mitmproxy-a175572447fad5f992e1f0c086386f03bf9cd6fb.tar.bz2
mitmproxy-a175572447fad5f992e1f0c086386f03bf9cd6fb.zip
Merge remote-tracking branch 'Kriechi/proxy-refactor' into proxy-refactor
Diffstat (limited to 'libmproxy/proxy/connection.py')
-rw-r--r--libmproxy/proxy/connection.py21
1 files changed, 10 insertions, 11 deletions
diff --git a/libmproxy/proxy/connection.py b/libmproxy/proxy/connection.py
index 49210e47..d2b956f3 100644
--- a/libmproxy/proxy/connection.py
+++ b/libmproxy/proxy/connection.py
@@ -1,6 +1,8 @@
from __future__ import absolute_import
+
import copy
import os
+
from netlib import tcp, certutils
from .. import stateobject, utils
@@ -75,14 +77,14 @@ class ClientConnection(tcp.BaseHandler, stateobject.StateObject):
return f
def convert_to_ssl(self, *args, **kwargs):
- # TODO: read ALPN from server and select same proto for client conn
- # alpn_select = 'h2'
- # def alpn_select_callback(conn_, options):
- # if alpn_select in options:
- # return bytes(alpn_select)
- # else: # pragma no cover
- # return options[0]
- # tcp.BaseHandler.convert_to_ssl(self, alpn_select=alpn_select_callback, *args, **kwargs)
+ if 'alpn_select' in kwargs:
+ alpn_select = kwargs['alpn_select']
+ def alpn_select_callback(conn_, options):
+ if alpn_select in options:
+ return bytes(alpn_select)
+ else: # pragma no cover
+ return options[0]
+ kwargs['alpn_select'] = alpn_select_callback
tcp.BaseHandler.convert_to_ssl(self, *args, **kwargs)
self.timestamp_ssl_setup = utils.timestamp()
@@ -184,9 +186,6 @@ class ServerConnection(tcp.TCPClient, stateobject.StateObject):
if os.path.exists(path):
clientcert = path
- # TODO: read ALPN from client and use same list for server conn
- # self.convert_to_ssl(cert=clientcert, sni=sni, alpn_protos=[netlib.http.http2.HTTP2Protocol.ALPN_PROTO_H2], **kwargs)
-
self.convert_to_ssl(cert=clientcert, sni=sni, **kwargs)
self.sni = sni
self.timestamp_ssl_setup = utils.timestamp()