SSL: SSLeay_version() is deprecated in OpenSSL 1.1.0.

SSLeay_version() and SSLeay() are no longer available if OPENSSL_API_COMPAT
is set to 0x10100000L.  Switched to using OpenSSL_version() instead.

Additionally, we now compare version strings instead of version numbers,
and this correctly works for LibreSSL as well.
This commit is contained in:
Maxim Dounin 2016-03-31 23:38:38 +03:00
parent d8fbce1deb
commit 2e251b1c34
2 changed files with 13 additions and 3 deletions

View File

@ -413,13 +413,12 @@ ngx_show_version_info(void)
#endif #endif
#if (NGX_SSL) #if (NGX_SSL)
if (SSLeay() == SSLEAY_VERSION_NUMBER) { if (ngx_strcmp(ngx_ssl_version(), OPENSSL_VERSION_TEXT) == 0) {
ngx_write_stderr("built with " OPENSSL_VERSION_TEXT NGX_LINEFEED); ngx_write_stderr("built with " OPENSSL_VERSION_TEXT NGX_LINEFEED);
} else { } else {
ngx_write_stderr("built with " OPENSSL_VERSION_TEXT ngx_write_stderr("built with " OPENSSL_VERSION_TEXT
" (running with "); " (running with ");
ngx_write_stderr((char *) (uintptr_t) ngx_write_stderr((char *) (uintptr_t) ngx_ssl_version());
SSLeay_version(SSLEAY_VERSION));
ngx_write_stderr(")" NGX_LINEFEED); ngx_write_stderr(")" NGX_LINEFEED);
} }
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME #ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME

View File

@ -39,6 +39,17 @@
#endif #endif
#if (OPENSSL_VERSION_NUMBER >= 0x10100001L)
#define ngx_ssl_version() OpenSSL_version(OPENSSL_VERSION)
#else
#define ngx_ssl_version() SSLeay_version(SSLEAY_VERSION)
#endif
#define ngx_ssl_session_t SSL_SESSION #define ngx_ssl_session_t SSL_SESSION
#define ngx_ssl_conn_t SSL #define ngx_ssl_conn_t SSL