summaryrefslogtreecommitdiff
path: root/OpenSSL/ssl/ssl.c
diff options
context:
space:
mode:
authorJean-Paul Calderone <exarkun@divmod.com>2010-10-31 20:51:17 -0400
committerJean-Paul Calderone <exarkun@divmod.com>2010-10-31 20:51:17 -0400
commit305626adb01f260260eeff1e835355296018d019 (patch)
treeeb087735513e277f748afe028393dc5b8933ee85 /OpenSSL/ssl/ssl.c
parent9389606d9a163692705791b89e8152aad4dd6d24 (diff)
downloadpyopenssl-305626adb01f260260eeff1e835355296018d019.tar.gz
Try dynamically loading crypto_X509Name_New on Windows
Diffstat (limited to 'OpenSSL/ssl/ssl.c')
-rw-r--r--OpenSSL/ssl/ssl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/OpenSSL/ssl/ssl.c b/OpenSSL/ssl/ssl.c
index 8ac4420..b286b88 100644
--- a/OpenSSL/ssl/ssl.c
+++ b/OpenSSL/ssl/ssl.c
@@ -73,6 +73,18 @@ PyOpenSSL_MODINIT(SSL) {
PyObject *ssl_api_object;
import_crypto();
+#else
+# ifdef WINDOWS
+ HMODULE crypto = GetModuleHandle("crypto.pyd");
+ if (crypto == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "Unable to get crypto module");
+ return;
+ }
+
+ new_x509name = GetProcAddress(crypto, "crypto_X509Name_New");
+# else
+ new_x509name = crypto_X509Name_New;
+# endif
#endif
SSL_library_init();