summaryrefslogtreecommitdiff
path: root/m4/tls.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/tls.m4')
-rw-r--r--m4/tls.m468
1 files changed, 53 insertions, 15 deletions
diff --git a/m4/tls.m4 b/m4/tls.m4
index 1713802c486..ebbf9d97613 100644
--- a/m4/tls.m4
+++ b/m4/tls.m4
@@ -42,6 +42,7 @@ AC_DEFUN([ACE_CHECK_TLS],
dnl ---------------------------------------------------------
ace_TLS_CPPFLAGS=""
+ ace_TLS_LDFLAGS=""
dnl Check if OpenSSL requires the Kerberos include directory to be
dnl added to the header search path.
@@ -49,10 +50,7 @@ AC_DEFUN([ACE_CHECK_TLS],
AC_CACHE_CHECK([for Kerberos include flags needed by OpenSSL],
[ac_cv_kerberos_dir],
[
- for ace_kerberos in usr usr/local; do
- ace_TLS_CPPFLAGS="-I/${ace_kerberos}/kerberos/include"
-
- CPPFLAGS="$ace_TLS_CPPFLAGS $ace_save_CPPFLAGS"
+ dnl Try compiling without any Kerberos-specific flags first.
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([
@@ -79,19 +77,59 @@ SSL_shutdown (ssl);
])
],
[
- ac_cv_kerberos_dir="$ace_TLS_CPPFLAGS"
- break
+ ac_cv_kerberos_dir=no
],
[
- ac_cv_kerberos_dir=no
- ])
+ ace_kerberos_dir=""
+ for ace_kerberos in /usr /usr/local; do
+ ace_kerberos_dir="${ace_kerberos}/kerberos/include"
+ ace_TLS_CPPFLAGS="-I${ace_kerberos_dir}"
+
+ CPPFLAGS="$ace_TLS_CPPFLAGS $ace_save_CPPFLAGS"
+
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([
+#include <openssl/ssl.h>
+ ],
+ [
+// ... THIS CODE DOES NOTHING! IT IS JUST USED FOR COMPILE TESTS ...
- done
+// ... Perform TCP connection ...
+
+// ... Perform TLS/SSL stuff ...
+CRYPTO_set_locking_callback (0);
+SSLeay_add_ssl_algorithms ();
+SSL_load_error_strings ();
+SSL_METHOD * meth = TLSv1_method ();
+SSL_CTX * ctx = SSL_CTX_new (meth);
+SSL * ssl = SSL_new (ctx);
+int fd = 2000; // Dummy file descriptor value.
+SSL_set_fd (ssl, fd);
+SSL_connect (ssl);
+SSL_shutdown (ssl);
+
+// ...
+ ])
+ ],
+ [
+ ac_cv_kerberos_dir="$ace_kerberos_dir"
+ break
+ ],
+ [
+ ac_cv_kerberos_dir=no
+ ])
+ done
+ ])
])
- if test $ac_cv_kerberos_dir != no; then
- AC_SUBST([ACE_TLS_CPPFLAGS],[$ace_TLS_CPPFLAGS])
- fi
+ AS_IF([test "$ac_cv_kerberos_dir" = no],
+ [
+ AC_SUBST([ACE_KERBEROS_INCLUDES],[.])
+ ],
+ [
+ AC_SUBST([ACE_TLS_CPPFLAGS],[-I${ac_cv_kerberos_dir}])
+ AC_SUBST([ACE_KERBEROS_INCLUDES],[$ac_cv_kerberos_dir])
+ ])
dnl ---------------------------------------------------------
@@ -136,9 +174,9 @@ SSL_shutdown (ssl);
])
])
- if test $ac_cv_openssl_libs != no; then
- AC_SUBST([ACE_TLS_LIBS],[$ace_TLS_LIBS])
- fi
+ AS_IF([test $ac_cv_openssl_libs != no],
+ [AC_SUBST([ACE_TLS_LIBS],[$ace_TLS_LIBS])],
+ [])
AM_CONDITIONAL([BUILD_SSL], [test X$ace_user_with_ssl = Xyes])