X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=mech_eap%2Feap_mech.c;h=403e2f8b5630bc69ca96e090c3ab98380a49ba31;hp=995a8ee6eb381f6cd098e274078071a2d2635472;hb=HEAD;hpb=45784a92fca96a690034b94f3b1969decd0acb1e diff --git a/mech_eap/eap_mech.c b/mech_eap/eap_mech.c index 995a8ee..403e2f8 100644 --- a/mech_eap/eap_mech.c +++ b/mech_eap/eap_mech.c @@ -1,5 +1,5 @@ /* - * 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 @@ -36,6 +36,8 @@ #include "gssapiP_eap.h" +extern int wpa_debug_level; + static OM_uint32 eapPeerRegisterMethods(OM_uint32 *minor) { @@ -151,6 +153,13 @@ 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); } @@ -165,34 +174,51 @@ gssEapInitLibRadsec(OM_uint32 *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) { - OM_uint32 minor; - - gssEapAttrProvidersFinalize(&minor); + wpa_printf(MSG_INFO, "### gssEapFinalize()"); 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