aboutsummaryrefslogtreecommitdiffstats
path: root/netlib
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-08-16 21:47:42 +1200
committerAldo Cortesi <aldo@nullcube.com>2015-08-16 21:47:42 +1200
commit7da47bd7203a5163bc182a48abda9cd6501512f3 (patch)
tree5b8c48df41f037e9e6477bf2a2f93f463e7040e0 /netlib
parent99e89a1efc9871e8956460d1e40cf8282f14babd (diff)
parent85cede47aa8f9ffd770ad2830084e53b04b4e77e (diff)
downloadmitmproxy-7da47bd7203a5163bc182a48abda9cd6501512f3.tar.gz
mitmproxy-7da47bd7203a5163bc182a48abda9cd6501512f3.tar.bz2
mitmproxy-7da47bd7203a5163bc182a48abda9cd6501512f3.zip
Merge branch 'master' of ssh.github.com:mitmproxy/netlib
Diffstat (limited to 'netlib')
-rw-r--r--netlib/tcp.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/netlib/tcp.py b/netlib/tcp.py
index c355cfdd..b3171a1c 100644
--- a/netlib/tcp.py
+++ b/netlib/tcp.py
@@ -403,6 +403,7 @@ class _Connection(object):
cipher_list=None,
alpn_protos=None,
alpn_select=None,
+ alpn_select_callback=None,
):
"""
Creates an SSL Context.
@@ -457,7 +458,7 @@ class _Connection(object):
if alpn_protos is not None:
# advertise application layer protocols
context.set_alpn_protos(alpn_protos)
- elif alpn_select is not None:
+ elif alpn_select is not None and alpn_select_callback is None:
# select application layer protocol
def alpn_select_callback(conn_, options):
if alpn_select in options:
@@ -465,6 +466,10 @@ class _Connection(object):
else: # pragma no cover
return options[0]
context.set_alpn_select_callback(alpn_select_callback)
+ elif alpn_select_callback is not None and alpn_select is None:
+ context.set_alpn_select_callback(alpn_select_callback)
+ elif alpn_select_callback is not None and alpn_select is not None:
+ raise NetLibError("ALPN error: only define alpn_select (string) OR alpn_select_callback (method).")
return context