Use AC_CHECK_FUNCS to find functions not in LibreSSL

LibreSSL might not have all functions of OpenSSL 1.1.0 so use
AC_CHECK_FUNCS to find them first before using them.

Closes #1899
Fixes #1898
This commit is contained in:
Florian Stinglmayr 2016-12-13 18:41:43 +01:00 committed by Patrick Griffis
parent 1b760dd22b
commit d583ca7d92
2 changed files with 4 additions and 2 deletions

View File

@ -374,6 +374,8 @@ AS_IF([test "$openssl" != no], [
openssl=yes openssl=yes
COMMON_LIBS="$COMMON_LIBS $OPENSSL_LIBS" COMMON_LIBS="$COMMON_LIBS $OPENSSL_LIBS"
COMMON_CFLAGS="$COMMON_CFLAGS $OPENSSL_CFLAGS" COMMON_CFLAGS="$COMMON_CFLAGS $OPENSSL_CFLAGS"
dnl Test for various functions that are not available in LibreSSL
AC_CHECK_FUNCS([SSL_CTX_get_ssl_method X509_get_signature_nid])
], [ ], [
unset openssl_path ac_cv_lib_ssl_SSL_new ac_cv_header_openssl_ssl_h unset openssl_path ac_cv_lib_ssl_SSL_new ac_cv_header_openssl_ssl_h
AS_IF([test "$openssl" != yes], [ AS_IF([test "$openssl" != yes], [

View File

@ -176,7 +176,7 @@ _SSL_get_cert_info (struct cert_info *cert_info, SSL * ssl)
return 1; return 1;
alg = OBJ_obj2nid (algor->algorithm); alg = OBJ_obj2nid (algor->algorithm);
#if OPENSSL_VERSION_NUMBER < 0x10100000L #ifndef HAVE_X509_GET_SIGNATURE_NID
sign_alg = OBJ_obj2nid (peer_cert->sig_alg->algorithm); sign_alg = OBJ_obj2nid (peer_cert->sig_alg->algorithm);
#else #else
sign_alg = X509_get_signature_nid (peer_cert); sign_alg = X509_get_signature_nid (peer_cert);
@ -306,7 +306,7 @@ _SSL_socket (SSL_CTX *ctx, int sd)
SSL_set_fd (ssl, sd); SSL_set_fd (ssl, sd);
#if OPENSSL_VERSION_NUMBER < 0x10100000L #ifndef HAVE_SSL_CTX_GET_SSL_METHOD
method = ctx->method; method = ctx->method;
#else #else
method = SSL_CTX_get_ssl_method (ctx); method = SSL_CTX_get_ssl_method (ctx);