X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=mech_eap%2Feap_mech.c;h=4821a9c5334033fd946ceb09207989aaf66b7ebf;hb=4d93aaedd99c1dc4f6ecbc0588da12aa16904593;hp=995a8ee6eb381f6cd098e274078071a2d2635472;hpb=969d193011cef53530a0d582ca4ca60451340a10;p=mech_eap.orig diff --git a/mech_eap/eap_mech.c b/mech_eap/eap_mech.c index 995a8ee..4821a9c 100644 --- a/mech_eap/eap_mech.c +++ b/mech_eap/eap_mech.c @@ -165,34 +165,55 @@ 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; +#ifdef GSSEAP_ENABLE_ACCEPTOR 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