#include <unistd.h>
#include <stdlib.h>
#include <time.h>
+#include <sys/param.h>
/* GSS includes */
#include <gssapi/gssapi.h>
/* Kerberos includes */
#include <krb5.h>
-/* EAP includes */
+/* EAP includes (not C++ clean) */
#ifndef __cplusplus
#include <common.h>
#include <eap_peer/eap.h>
#include <wpabuf.h>
#endif
-#include <freeradius-client.h>
+/* Workaround for FreeRADIUS not being C++ clean */
+#ifdef __cplusplus
+extern "C" {
+#define operator fr_operator
+#endif
+#include <freeradius/libradius.h>
#include <freeradius/radius.h>
+#include <radsec/radsec.h>
+#ifdef __cplusplus
+#undef operator
+}
+#endif
#include "util.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* These name flags are informative and not actually used by anything yet */
#define NAME_FLAG_NAI 0x00000001
#define NAME_FLAG_SERVICE 0x00000002
};
struct gss_eap_acceptor_ctx {
- rc_handle *radHandle;
+ struct rs_handle *radHandle;
+ struct rs_connection *radConn;
char *radServer;
gss_buffer_desc state;
VALUE_PAIR *avps;
void
gssEapSaveStatusInfo(OM_uint32 minor, const char *format, ...);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _GSSAPIP_EAP_H_ */