diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2017-08-08 18:18:00 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2017-08-08 18:18:00 +0900 |
commit | 1d1be8dc94fcb7894458d4ac1e0ad370141c56fa (patch) | |
tree | 390996fa380190ec22d63de7ee5c77c857ce078f /ext | |
parent | 3e5a009966bd7f806f7180d82cf830a04be28986 (diff) | |
download | ruby-openssl-1d1be8dc94fcb7894458d4ac1e0ad370141c56fa.tar.gz |
ssl: fix compile error with OpenSSL 1.0.0
OpenSSL <= 1.0.0 did not support TLS 1.1/1.2, and thus we must still
check the existence of the symbols. This fixes the previous commit,
3e5a009966bd ("ssl: remove unsupported TLS versions from
SSLContext::METHODS", 2017-08-08).
Diffstat (limited to 'ext')
-rw-r--r-- | ext/openssl/extconf.rb | 2 | ||||
-rw-r--r-- | ext/openssl/ossl_ssl.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb index 6782c046..75da65cd 100644 --- a/ext/openssl/extconf.rb +++ b/ext/openssl/extconf.rb @@ -113,6 +113,8 @@ Logging::message "=== Checking for OpenSSL features... ===\n" # like OPENSSL_NO_SSL2 may not be defined. have_func("SSLv2_method") have_func("SSLv3_method") +have_func("TLSv1_1_method") +have_func("TLSv1_2_method") have_func("RAND_egd") engines = %w{builtin_engines openbsd_dev_crypto dynamic 4758cca aep atalla chil cswift nuron sureware ubsec padlock capi gmp gost cryptodev aesni} diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index 12b5536c..62bffe31 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -74,10 +74,10 @@ static const struct { #if !defined(OPENSSL_NO_TLS1) && !defined(OPENSSL_NO_TLS1_METHOD) OSSL_SSL_METHOD_ENTRY(TLSv1, TLS1_VERSION), #endif -#if !defined(OPENSSL_NO_TLS1_1) && !defined(OPENSSL_NO_TLS1_1_METHOD) +#if !defined(OPENSSL_NO_TLS1_1) && !defined(OPENSSL_NO_TLS1_1_METHOD) && defined(HAVE_TLSV1_1_METHOD) OSSL_SSL_METHOD_ENTRY(TLSv1_1, TLS1_1_VERSION), #endif -#if !defined(OPENSSL_NO_TLS1_2) && !defined(OPENSSL_NO_TLS1_2_METHOD) +#if !defined(OPENSSL_NO_TLS1_2) && !defined(OPENSSL_NO_TLS1_2_METHOD) && defined(HAVE_TLSV1_2_METHOD) OSSL_SSL_METHOD_ENTRY(TLSv1_2, TLS1_2_VERSION), #endif OSSL_SSL_METHOD_ENTRY(SSLv23, 0), |