/*
- * Copyright (c) 2011, JANET(UK)
+ * Copyright (c) 2011, 2015, JANET(UK)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
#include "gssapiP_eap.h"
+extern int wpa_debug_level;
+
static OM_uint32
eapPeerRegisterMethods(OM_uint32 *minor)
{
static OM_uint32
gssEapInitLibEap(OM_uint32 *minor)
{
+ char *debug_file = NULL;
+ wpa_debug_level = MSG_ERROR;
+ if ((debug_file = getenv("GSSEAP_TRACE")) != NULL) {
+ wpa_debug_open_file(debug_file);
+ wpa_debug_level = 0;
+ }
+
return eapPeerRegisterMethods(minor);
}
return GSS_S_COMPLETE;
}
-static void gssEapInitiatorInit(void) GSSEAP_CONSTRUCTOR;
-static void gssEapFinalize(void) GSSEAP_DESTRUCTOR;
+void gssEapFinalize(void) GSSEAP_DESTRUCTOR;
-static void
-gssEapInitiatorInit(void)
+OM_uint32
+gssEapInitiatorInit(OM_uint32 *minor)
{
- OM_uint32 major, minor;
+ OM_uint32 major;
initialize_eapg_error_table();
initialize_rse_error_table();
- major = gssEapInitLibEap(&minor);
- assert(major == GSS_S_COMPLETE);
+ major = gssEapInitLibEap(minor);
+ if (GSS_ERROR(major))
+ return major;
- major = gssEapInitLibRadsec(&minor);
- assert(major == GSS_S_COMPLETE);
+ major = gssEapInitLibRadsec(minor);
+ if (GSS_ERROR(major))
+ return major;
#ifdef GSSEAP_ENABLE_REAUTH
- major = gssEapReauthInitialize(&minor);
- assert(major == GSS_S_COMPLETE);
+ major = gssEapReauthInitialize(minor);
+ if (GSS_ERROR(major))
+ return major;
#endif
+
+ *minor = 0;
+ return GSS_S_COMPLETE;
}
-static void
+void
gssEapFinalize(void)
{
-#ifdef GSSEAP_ENABLE_ACCEPTOR
- OM_uint32 minor;
-
- gssEapAttrProvidersFinalize(&minor);
-#endif
eap_peer_unregister_methods();
}
+
+#ifdef GSSEAP_CONSTRUCTOR
+static void gssEapInitiatorInitAssert(void) GSSEAP_CONSTRUCTOR;
+
+static void
+gssEapInitiatorInitAssert(void)
+{
+ OM_uint32 major, minor;
+
+ major = gssEapInitiatorInit(&minor);
+
+ GSSEAP_ASSERT(!GSS_ERROR(major));
+}
+#endif