]) dnl SQUID_CHECK_KRB5_SOLARIS_BROKEN_KRB5_H
+AC_DEFUN([SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H], [
+ AC_CACHE_CHECK([for broken Heimdal krb5.h],squid_cv_broken_heimdal_krb5_h, [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <krb5.h>
+int
+main(void)
+{
+ krb5_context context;
+
+ krb5_init_context(&context);
+
+ return 0;
+}
+]])], [ squid_cv_broken_heimdal_krb5_h=no ], [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#if defined(__cplusplus)
+extern "C" {
+#endif
+#include <krb5.h>
+#if defined(__cplusplus)
+}
+#endif
+int
+main(void)
+{
+ krb5_context context;
+
+ krb5_init_context(&context);
+
+ return 0;
+}
+]])], [ squid_cv_broken_heimdal_krb5_h=yes ], [ squid_cv_broken_heimdal_krb5_h=no ])
+ ])
+ ])
+]) dnl SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H
+
dnl check the max skew in the krb5 context, and sets squid_cv_max_skew_context
AC_DEFUN([SQUID_CHECK_MAX_SKEW_IN_KRB5_CONTEXT],[
AC_CACHE_CHECK([for max_skew in struct krb5_context],
KRB5INT_BEGIN_DECLS
#endif
#endif
+#if HAVE_BROKEN_HEIMDAL_KRB5_H
+extern "C" {
#include <krb5.h>
+}
+#else
+#include <krb5.h>
+#endif
#endif
int
[ if test "x$enableval" = "xyes" ; then
AC_MSG_NOTICE([Delay pools enabled])
AC_DEFINE([USE_DELAY_POOLS],1,[Traffic management via "delay pools".])
- AM_CONDITIONAL(ENABLE_DELAY_POOLS, true,)
+ AM_CONDITIONAL(ENABLE_DELAY_POOLS, true)
fi
])
SQUID_CHECK_KRB5_SOLARIS_BROKEN_KRB5_H
if test "x$squid_cv_broken_krb5_h" = "xyes"; then
- AC_DEFINE(HAVE_BROKEN_SOLARIS_KRB5_H, 1, [Define to 1 if krb5.h is broken for C++])
+ AC_DEFINE(HAVE_BROKEN_SOLARIS_KRB5_H, 1, [Define to 1 if Solaris krb5.h is broken for C++])
AC_MSG_WARN([You have a broken Solaris <krb5.h> system include.])
AC_MSG_WARN([Please see http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6837512])
AC_MSG_WARN([If you need Kerberos support you'll have to patch])
AC_MSG_WARN([your system. See contrib/solaris/solaris-krb5-include.patch])
fi
+ SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H
+ if test "x$squid_cv_broken_heimdal_krb5_h" = "xyes"; then
+ AC_DEFINE(HAVE_BROKEN_HEIMDAL_KRB5_H, 1, [Define to 1 if Heimdal krb5.h is broken for C++])
+ fi
AC_CHECK_HEADERS(krb5.h com_err.h et/com_err.h)
ac_com_error_message=no
# Don't build without gssapi.h
if [ -f /usr/include/ldap.h -o -f /usr/local/include/ldap.h ]; then
# Won't link without SASL as well
- if [ -f /usr/include/sasl.h -o -f /usr/include/sasl/sasl.h ]; then
+ if [ -f /usr/include/sasl.h -o -f /usr/include/sasl/sasl.h -o -f /usr/local/include/sasl.h -o -f /usr/local/include/sasl/sasl.h ]; then
if [ -f /usr/lib/libsasl.a -o -f /usr/lib/libsasl2.a ]; then
exit 0
fi
if [ -f /usr/lib/libsasl.la -o -f /usr/lib/libsasl2.la ]; then
exit 0
fi
+ if [ -f /usr/local/lib/libsasl.so -o -f /usr/local/lib/libsasl2.so ]; then
+ exit 0
+ fi
fi
fi
exit 1
#include <string.h>
#endif
-#if HAVE_HEIMDAL_KERBEROS
#if HAVE_GSSAPI_GSSAPI_H
#include <gssapi/gssapi.h>
#elif HAVE_GSSAPI_H
#include <gssapi.h>
#endif /* HAVE_GSSAPI_GSSAPI_H/HAVE_GSSAPI_H */
-#if HAVE_KRB5_H
-#if HAVE_BROKEN_SOLARIS_KRB5_H
-#warn "Warning! You have a broken Solaris <krb5.h> fsystem header"
-#warn "http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6837512"
-#endif /* HAVE_BROKEN_SOLARIS_KRB5_H */
-#include <krb5.h>
-#endif /* HAVE_KRB5_H */
-#if HAVE_COM_ERR_H
-#include <com_err.h>
-#else
-#define error_message(code) krb5_get_err_text(kparam.context,code)
-#endif /* HAVE_COM_ERR_H */
-#else /*MIT */
-#ifdef HAVE_GSSAPI_GSSAPI_H
-#include <gssapi/gssapi.h>
-#elif defined(HAVE_GSSAPI_H)
-#include <gssapi.h>
-#endif
-#ifdef HAVE_GSSAPI_GSSAPI_KRB5_H
+
+#if !HAVE_HEIMDAL_KERBEROS
+#if HAVE_GSSAPI_GSSAPI_KRB5_H
#include <gssapi/gssapi_krb5.h>
#endif
-#ifdef HAVE_GSSAPI_GSSAPI_GENERIC_H
+#if HAVE_GSSAPI_GSSAPI_GENERIC_H
#include <gssapi/gssapi_generic.h>
#endif
-#ifdef HAVE_GSSAPI_GSSAPI_EXT_H
+#if HAVE_GSSAPI_GSSAPI_EXT_H
#include <gssapi/gssapi_ext.h>
#endif
-#ifdef HAVE_KRB5_H
+#endif
+
+#if HAVE_KRB5_H
#if HAVE_BROKEN_SOLARIS_KRB5_H
+#warn "Warning! You have a broken Solaris <krb5.h> system header"
+#warn "http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6837512"
#if defined(__cplusplus)
#define KRB5INT_BEGIN_DECLS extern "C" {
#define KRB5INT_END_DECLS
KRB5INT_BEGIN_DECLS
#endif
-#endif
+#endif /* HAVE_BROKEN_SOLARIS_KRB5_H */
+#if HAVE_BROKEN_HEIMDAL_KRB5_H
+extern "C" {
+#include <krb5.h>
+}
+#else
#include <krb5.h>
#endif
-#ifdef HAVE_COM_ERR_H
+#endif /* HAVE_KRB5_H */
+
+#if HAVE_COM_ERR_H
#include <com_err.h>
-#endif
-#endif
+#elif HAVE_HEIMDAL_KERBEROS
+#define error_message(code) krb5_get_err_text(kparam.context,code)
+#endif /* HAVE_COM_ERR_H */
+
#ifndef gss_nt_service_name
#define gss_nt_service_name GSS_C_NT_HOSTBASED_SERVICE
#endif