From: Yann Ylavic Date: Fri, 21 Feb 2020 14:22:10 +0000 (+0000) Subject: mod_ssl: follow up to r1861950: allow for OPENSSL_init_ssl() without autoconf. X-Git-Tag: 2.5.0-alpha2-ci-test-only~1631 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8fb24a0fd694766a64cda5633cac9b0d1056333;p=thirdparty%2Fapache%2Fhttpd.git mod_ssl: follow up to r1861950: allow for OPENSSL_init_ssl() without autoconf. For systems with no autoconf (eg. Windows), still check for and use OPENSSL_init_ssl() based on OpenSSL version >= 1.1.0. Usual LibreSSL gotcha, exclude LIBRESSL_VERSION_NUMBER from this new heuristic since autoconf is likely available in this case. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1874323 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c index e61ec7e81ea..d5189341f10 100644 --- a/modules/ssl/mod_ssl.c +++ b/modules/ssl/mod_ssl.c @@ -24,7 +24,6 @@ * Apache API interface structures */ -#include "ap_config_auto.h" #include "ssl_private.h" #include "mod_ssl.h" #include "mod_ssl_openssl.h" @@ -335,9 +334,10 @@ static int modssl_is_prelinked(void) static apr_status_t ssl_cleanup_pre_config(void *data) { -#if HAVE_OPENSSL_INIT_SSL - /* Openssl v1.1+ handles all termination automatically. Do - * nothing in this case. +#if HAVE_OPENSSL_INIT_SSL || (OPENSSL_VERSION_NUMBER >= 0x10100000L && \ + !defined(LIBRESSL_VERSION_NUMBER)) + /* Openssl v1.1+ handles all termination automatically from + * OPENSSL_init_ssl(). Do nothing in this case. */ #else @@ -404,7 +404,8 @@ static int ssl_hook_pre_config(apr_pool_t *pconf, #endif modssl_running_statically = modssl_is_prelinked(); -#if HAVE_OPENSSL_INIT_SSL +#if HAVE_OPENSSL_INIT_SSL || (OPENSSL_VERSION_NUMBER >= 0x10100000L && \ + !defined(LIBRESSL_VERSION_NUMBER)) /* Openssl v1.1+ handles all initialisation automatically, apart * from hints as to how we want to use the library. * diff --git a/modules/ssl/ssl_private.h b/modules/ssl/ssl_private.h index a8b219c280b..4148647ac30 100644 --- a/modules/ssl/ssl_private.h +++ b/modules/ssl/ssl_private.h @@ -27,6 +27,7 @@ */ /** Apache headers */ +#include "ap_config.h" #include "httpd.h" #include "http_config.h" #include "http_core.h"