AC_CHECK_LIB(krb5, GSS_C_NT_COMPOSITE_EXPORT, [AC_DEFINE_UNQUOTED([HAVE_GSS_C_NT_COMPOSITE_EXPORT], 1, [Define if GSS-API library supports recent naming extensions draft])], [], "$KRB5_LIBS")
AC_CHECK_LIB(krb5, gss_inquire_attrs_for_mech, [AC_DEFINE_UNQUOTED([HAVE_GSS_INQUIRE_ATTRS_FOR_MECH], 1, [Define if GSS-API library supports RFC 5587])], [], "$KRB5_LIBS")
AC_CHECK_LIB(krb5, gss_krb5_import_cred, [AC_DEFINE_UNQUOTED([HAVE_GSS_KRB5_IMPORT_CRED], 1, [Define if GSS-API library supports gss_krb5_import_cred])], [], "$KRB5_LIBS")
- AC_CHECK_LIB(krb5, heimdal_version, [AC_DEFINE_UNQUOTED([HAVE_HEIMDAL_VERSION], 1, [Define if building against Heimdal Kerberos implementation]), heimdal=yes], [heimdal=no], "$KRB5_LIBS")
- AM_CONDITIONAL(HEIMDAL, test "x$heimdal" != "xno")
+ AC_CHECK_LIB(krb5, heimdal_version, [AC_DEFINE_UNQUOTED([HAVE_HEIMDAL_VERSION], 1, [Define if building against Heimdal Kerberos implementation]), heimdal=yes], [heimdal=no], "$KRB5_LIBS")
+ AM_CONDITIONAL(HEIMDAL, test "x$heimdal" != "xno")
+ AC_CHECK_TYPE(gss_const_name_t, [AC_DEFINE([MECHEAP_GSS_CONST_NAME_T_IS_POINTER], 1, [Define if gss_const_name_t is a pointer. Broken krb5 10.x headers define it as a struct.])], [], [[#include <gssapi/gssapi.h>"]])
fi
])dnl
/* Kerberos headers */
#include <krb5.h>
-#include <com_err.h>
+#include <et/com_err.h>
/* EAP headers */
#include <includes.h>
#include <radsec/radius.h>
#endif
+#include "gssapi_headerfix.h"
#include "gsseap_err.h"
#include "radsec_err.h"
#include "util.h"
const struct gss_eap_token_buffer_set *outputTokens;
};
+
#define TOK_FLAG_SENDER_IS_ACCEPTOR 0x01
#define TOK_FLAG_WRAP_CONFIDENTIAL 0x02
#define TOK_FLAG_ACCEPTOR_SUBKEY 0x04
--- /dev/null
+#ifndef KRB_HEADER_FIX_H
+#define KRB_HEADER_FIX_H
+
+#ifndef MECHEAP_GSS_CONST_NAME_T_IS_POINTER
+/* The 10.x releases of the MIT Kerberos library defined gss_const_ctx_id_t,
+ * gss_const_cred_id_t, and gss_const_name_t as structs.
+ * They should be pointers. We define our own typedefs instead.
+ */
+
+
+typedef const struct gss_ctx_id_struct *gss_mecheap_const_ctx_id_t;
+typedef const struct gss_cred_id_struct *gss_mecheap_const_cred_id_t;
+typedef const struct gss_name_struct *gss_mecheap_const_name_t;
+
+#define gss_const_ctx_id_t gss_mecheap_const_ctx_id_t
+#define gss_const_cred_id_t gss_mecheap_const_cred_id_t
+#define gss_const_name_t gss_mecheap_const_name_t
+#endif
+
+#endif