aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-03 19:31:52 +0100
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-08-03 19:31:52 +0100
commitb66b67da40345296197227d98a33384d6b15b6ec (patch)
treec5a346e8e84c5f72c75bd5c937a2413b3e3c7f02 /src
parent3fb3dd205c45563f4e8d69a3594249ea155bbdbb (diff)
downloadcryptography-b66b67da40345296197227d98a33384d6b15b6ec.tar.gz
cryptography-b66b67da40345296197227d98a33384d6b15b6ec.tar.bz2
cryptography-b66b67da40345296197227d98a33384d6b15b6ec.zip
only copy the attrs we know should exist (courtesy dstufft)
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/bindings/openssl/binding.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/cryptography/hazmat/bindings/openssl/binding.py b/src/cryptography/hazmat/bindings/openssl/binding.py
index be3d6382..f9a6ba0f 100644
--- a/src/cryptography/hazmat/bindings/openssl/binding.py
+++ b/src/cryptography/hazmat/bindings/openssl/binding.py
@@ -26,14 +26,16 @@ def _osrandom_rand_status():
class _ConditionalLibrary(object):
def __init__(self, lib, conditional_names):
- for attr in dir(lib):
- attrval = getattr(lib, attr)
- setattr(self, attr, attrval)
-
+ excluded_names = set()
for condition, names in conditional_names.items():
- if not getattr(self, condition):
- for name in names:
- delattr(self, name)
+ if not getattr(lib, condition):
+ excluded_names |= set(names)
+
+ for attr in dir(lib):
+ if attr in excluded_names:
+ continue
+ else:
+ setattr(self, attr, getattr(lib, attr))
class Binding(object):