diff options
Diffstat (limited to 'OpenSSL/__init__.py')
-rw-r--r-- | OpenSSL/__init__.py | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/OpenSSL/__init__.py b/OpenSSL/__init__.py index 51dfdc9..004cd05 100644 --- a/OpenSSL/__init__.py +++ b/OpenSSL/__init__.py @@ -10,18 +10,39 @@ pyOpenSSL - A simple wrapper around the OpenSSL library """ import sys + try: orig = sys.getdlopenflags() except AttributeError: - pass + from OpenSSL import crypto else: - sys.setdlopenflags(2 | 256) + try: + import DLFCN + except ImportError: + try: + import dl + except ImportError: + try: + import ctypes + except ImportError: + flags = 2 | 256 + else: + flags = 2 | ctypes.RTLD_GLOBAL + del ctypes + else: + flags = dl.RTLD_NOW | dl.RTLD_GLOBAL + del dl + else: + flags = DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL + del DLFCN + + sys.setdlopenflags(flags) from OpenSSL import crypto sys.setdlopenflags(orig) - del orig + del orig, flags del sys -from OpenSSL import rand, crypto, SSL +from OpenSSL import rand, SSL from OpenSSL.version import __version__ __all__ = [ |