]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Check in the detected OpenSSL/libcrypto for ECDSA 4824/head
authorPieter Lexis <pieter.lexis@powerdns.com>
Thu, 29 Dec 2016 17:01:30 +0000 (18:01 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Thu, 29 Dec 2016 17:01:30 +0000 (18:01 +0100)
We used to 'just' use the default includes for this detection.

Fixes #4680

m4/pdns_check_libcrypto.m4
m4/pdns_check_libcrypto_ecdsa.m4

index 9f495b42ed91e5549d25bdf2edd45135ad52203f..c9034cf5a2c608542f2789464723541f513feff0 100644 (file)
@@ -54,6 +54,7 @@ AC_DEFUN([PDNS_CHECK_LIBCRYPTO], [
                 if test $? = 0; then
                     LIBCRYPTO_LIBS=`$PKG_CONFIG libcrypto --libs-only-l 2>/dev/null`
                     LIBCRYPTO_INCLUDES=`$PKG_CONFIG libcrypto --cflags-only-I 2>/dev/null`
+                    ssldir=`$PKG_CONFIG libcrypto --variable=prefix 2>/dev/null`
                     found=true
                 fi
             fi
index 7c2c48ad67233cbd34918687be558513e2b6ba74..8720a63966dd91b97178cf8651fba4226a9026e4 100644 (file)
@@ -1,11 +1,22 @@
 AC_DEFUN([PDNS_CHECK_LIBCRYPTO_ECDSA], [
   AC_REQUIRE([PDNS_CHECK_LIBCRYPTO])
+
+  # Set the environment correctly for a possibly non-default OpenSSL path that was found by/supplied to PDNS_CHECK_LIBCRYPTO
+  save_CPPFLAGS="$CPPFLAGS"
+  save_LDFLAGS="$LDFLAGS"
+  save_LIBS="$LIBS"
+
+  CPPFLAGS="$LIBCRYPTO_INCLUDES $CPPFLAGS"
+  LDFLAGS="$LIBCRYPTO_LDFLAGS $LDFLAGS"
+  LIBS="$LIBCRYPTO_LIBS $LIBS"
+
+  # Find the headers we need for ECDSA
   libcrypto_ecdsa=yes
-  AC_CHECK_HEADER([openssl/ecdsa.h], [
+  AC_CHECK_HEADER([$ssldir/include/openssl/ecdsa.h], [
     AC_CHECK_DECLS([NID_X9_62_prime256v1, NID_secp384r1], [ : ], [
       libcrypto_ecdsa=no
     ], [AC_INCLUDES_DEFAULT
-#include <openssl/evp.h>
+#include <$ssldir/include/openssl/evp.h>
     ])
   ], [
     libcrypto_ecdsa=no
@@ -14,4 +25,9 @@ AC_DEFUN([PDNS_CHECK_LIBCRYPTO_ECDSA], [
   AS_IF([test "x$libcrypto_ecdsa" = "xyes"], [
     AC_DEFINE([HAVE_LIBCRYPTO_ECDSA], [1], [define to 1 if OpenSSL ecdsa support is available.])
   ])
+
+  # Restore variables
+  CPPFLAGS="$save_CPPFLAGS"
+  LDFLAGS="$save_LDFLAGS"
+  LIBS="$save_LIBS"
 ])