diff options
author | Maximilian Hils <git@maximilianhils.com> | 2015-08-03 18:06:31 +0200 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2015-08-03 18:06:31 +0200 |
commit | c2832ef72bd4eed485a1c8d4bcb732da69896444 (patch) | |
tree | 7933a8ca5a0d7587d38d8f4c7072cece2d079e6c /netlib | |
parent | 6a678d86e16ccab7d16a74c79a6a0b928007d532 (diff) | |
download | mitmproxy-c2832ef72bd4eed485a1c8d4bcb732da69896444.tar.gz mitmproxy-c2832ef72bd4eed485a1c8d4bcb732da69896444.tar.bz2 mitmproxy-c2832ef72bd4eed485a1c8d4bcb732da69896444.zip |
fix mitmproxy/mitmproxy#705
Diffstat (limited to 'netlib')
-rw-r--r-- | netlib/tcp.py | 6 | ||||
-rw-r--r-- | netlib/version_check.py | 25 |
2 files changed, 17 insertions, 14 deletions
diff --git a/netlib/tcp.py b/netlib/tcp.py index 77c2a531..c355cfdd 100644 --- a/netlib/tcp.py +++ b/netlib/tcp.py @@ -11,7 +11,11 @@ import certifi import OpenSSL from OpenSSL import SSL -from . import certutils +from . import certutils, version_check + +# This is a rather hackish way to make sure that +# the latest version of pyOpenSSL is actually installed. +version_check.check_pyopenssl_version() EINTR = 4 diff --git a/netlib/version_check.py b/netlib/version_check.py index 5465c901..aae4e8c7 100644 --- a/netlib/version_check.py +++ b/netlib/version_check.py @@ -1,23 +1,19 @@ -from __future__ import print_function, absolute_import +""" +Having installed a wrong version of pyOpenSSL or netlib is unfortunately a +very common source of error. Check before every start that both versions +are somewhat okay. +""" +from __future__ import division, absolute_import, print_function, unicode_literals import sys import inspect import os.path - import OpenSSL from . import version PYOPENSSL_MIN_VERSION = (0, 15) -def version_check( - mitmproxy_version, - pyopenssl_min_version=PYOPENSSL_MIN_VERSION, - fp=sys.stderr): - """ - Having installed a wrong version of pyOpenSSL or netlib is unfortunately a - very common source of error. Check before every start that both versions - are somewhat okay. - """ +def check_mitmproxy_version(mitmproxy_version, fp=sys.stderr): # We don't introduce backward-incompatible changes in patch versions. Only # consider major and minor version. if version.IVERSION[:2] != mitmproxy_version[:2]: @@ -29,12 +25,15 @@ def version_check( file=fp ) sys.exit(1) + + +def check_pyopenssl_version(min_version=PYOPENSSL_MIN_VERSION, fp=sys.stderr): v = tuple(int(x) for x in OpenSSL.__version__.split(".")[:2]) - if v < pyopenssl_min_version: + if v < min_version: print( "You are using an outdated version of pyOpenSSL:" " mitmproxy requires pyOpenSSL %s or greater." % - str(pyopenssl_min_version), + str(min_version), file=fp ) # Some users apparently have multiple versions of pyOpenSSL installed. |