[pypy-commit] pypy openssl-1.1: Fix for Windows: fails in untranslated tests if the TLS_method()
arigo
pypy.commits at gmail.com
Tue Nov 1 12:31:14 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: openssl-1.1
Changeset: r88037:3f3f9319d227
Date: 2016-11-01 17:30 +0100
http://bitbucket.org/pypy/pypy/changeset/3f3f9319d227/
Log: Fix for Windows: fails in untranslated tests if the TLS_method()
function is made 'macro=True'. Not sure I want to dig into the
reason for that mess.
diff --git a/rpython/rlib/ropenssl.py b/rpython/rlib/ropenssl.py
--- a/rpython/rlib/ropenssl.py
+++ b/rpython/rlib/ropenssl.py
@@ -62,9 +62,6 @@
'#if (OPENSSL_VERSION_NUMBER < 0x10100000)\n'
'# define COMP_get_name(meth) (meth->name)\n'
'# define COMP_get_type(meth) (meth->type)\n'
- '# define EVP_MD_CTX_free EVP_MD_CTX_destroy\n'
- '# define EVP_MD_CTX_new EVP_MD_CTX_create\n'
- '# define TLS_method SSLv23_method\n'
'# define X509_NAME_ENTRY_set(ne) (ne->set)\n'
'# define X509_OBJECT_get0_X509(obj) (obj->data.x509)\n'
'# define X509_OBJECT_get_type(obj) (obj->type)\n'
@@ -314,8 +311,12 @@
ssl_external('TLSv1_2_method', [], SSL_METHOD)
ssl_external('SSLv2_method', [], SSL_METHOD)
ssl_external('SSLv3_method', [], SSL_METHOD)
-ssl_external('TLS_method', [], SSL_METHOD,
- macro=bool(OPENSSL_VERSION_NUMBER < 0x10100000) or None)
+# Windows note: fails in untranslated tests if the following function is
+# made 'macro=True'. Not sure I want to dig into the reason for that mess.
+libssl_TLS_method = external(
+ 'TLS_method' if OPENSSL_VERSION_NUMBER >= 0x10100000
+ else 'SSLv23_method',
+ [], SSL_METHOD)
ssl_external('SSL_CTX_use_PrivateKey_file', [SSL_CTX, rffi.CCHARP, rffi.INT], rffi.INT,
save_err=rffi.RFFI_FULL_ERRNO_ZERO)
ssl_external('SSL_CTX_use_certificate_chain_file', [SSL_CTX, rffi.CCHARP], rffi.INT,
@@ -498,7 +499,10 @@
# with the GIL held, and so is allowed to run in a RPython __del__ method.
ssl_external('SSL_free', [SSL], lltype.Void, releasegil=False)
ssl_external('SSL_CTX_free', [SSL_CTX], lltype.Void, releasegil=False)
-ssl_external('OPENSSL_free', [rffi.VOIDP], lltype.Void, macro=True)
+libssl_OPENSSL_free = external(
+ 'OPENSSL_free' if OPENSSL_VERSION_NUMBER >= 0x10100000
+ else 'CRYPTO_free',
+ [rffi.VOIDP], lltype.Void)
ssl_external('SSL_write', [SSL, rffi.CCHARP, rffi.INT], rffi.INT,
save_err=SAVE_ERR)
@@ -586,11 +590,13 @@
EVP_MD_CTX_copy = external(
'EVP_MD_CTX_copy', [EVP_MD_CTX, EVP_MD_CTX], rffi.INT)
EVP_MD_CTX_new = external(
- 'EVP_MD_CTX_new', [], EVP_MD_CTX,
- macro=bool(OPENSSL_VERSION_NUMBER < 0x10100000) or None)
+ 'EVP_MD_CTX_new' if OPENSSL_VERSION_NUMBER >= 0x10100000
+ else 'EVP_MD_CTX_create',
+ [], EVP_MD_CTX)
EVP_MD_CTX_free = external(
- 'EVP_MD_CTX_free', [EVP_MD_CTX], lltype.Void, releasegil=False,
- macro=bool(OPENSSL_VERSION_NUMBER < 0x10100000) or None)
+ 'EVP_MD_CTX_free' if OPENSSL_VERSION_NUMBER >= 0x10100000
+ else 'EVP_MD_CTX_destroy',
+ [EVP_MD_CTX], lltype.Void, releasegil=False)
if OPENSSL_VERSION_NUMBER >= 0x10100000 and not LIBRESSL:
PKCS5_PBKDF2_HMAC = external('PKCS5_PBKDF2_HMAC', [
More information about the pypy-commit
mailing list