aboutsummaryrefslogtreecommitdiffstats
path: root/netlib
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2015-08-03 18:06:31 +0200
committerMaximilian Hils <git@maximilianhils.com>2015-08-03 18:06:31 +0200
commitc2832ef72bd4eed485a1c8d4bcb732da69896444 (patch)
tree7933a8ca5a0d7587d38d8f4c7072cece2d079e6c /netlib
parent6a678d86e16ccab7d16a74c79a6a0b928007d532 (diff)
downloadmitmproxy-c2832ef72bd4eed485a1c8d4bcb732da69896444.tar.gz
mitmproxy-c2832ef72bd4eed485a1c8d4bcb732da69896444.tar.bz2
mitmproxy-c2832ef72bd4eed485a1c8d4bcb732da69896444.zip
fix mitmproxy/mitmproxy#705
Diffstat (limited to 'netlib')
-rw-r--r--netlib/tcp.py6
-rw-r--r--netlib/version_check.py25
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.