call eap_mech constructors from DllMain
authorLuke Howard <lukeh@padl.com>
Tue, 13 Sep 2011 06:28:51 +0000 (16:28 +1000)
committerLuke Howard <lukeh@padl.com>
Tue, 13 Sep 2011 06:28:51 +0000 (16:28 +1000)
mech_eap/eap_mech.c
mech_eap/gssapiP_eap.h
mech_eap/util_tld.c

index 630dd0e..0b64df9 100644 (file)
@@ -165,10 +165,10 @@ gssEapInitLibRadsec(OM_uint32 *minor)
     return GSS_S_COMPLETE;
 }
 
-static void gssEapInitiatorInit(void) GSSEAP_CONSTRUCTOR;
-static void gssEapFinalize(void) GSSEAP_DESTRUCTOR;
+void gssEapInitiatorInit(void) GSSEAP_CONSTRUCTOR;
+void gssEapFinalize(void) GSSEAP_DESTRUCTOR;
 
-static void
+void
 gssEapInitiatorInit(void)
 {
     OM_uint32 major, minor;
@@ -188,7 +188,7 @@ gssEapInitiatorInit(void)
 #endif
 }
 
-static void
+void
 gssEapFinalize(void)
 {
 #ifdef GSSEAP_ENABLE_ACCEPTOR
index 50884ec..5d352a9 100644 (file)
@@ -335,6 +335,13 @@ gssEapExportSecContext(OM_uint32 *minor,
                        gss_buffer_t token);
 
 
+/* eap_mech.c */
+void
+gssEapInitiatorInit(void);
+
+void
+gssEapFinalize(void);
+
 #ifdef __cplusplus
 }
 #endif
index 38e6a10..2e1ddfa 100644 (file)
@@ -74,6 +74,7 @@ DllMain(HINSTANCE hDLL,     /* DLL module handle */
     switch (reason) {
         case DLL_PROCESS_ATTACH:
             /* Allocate a TLS index. */
+            gssEapInitiatorInit();
             tlsIndex = TlsAlloc();
             if (tlsIndex == TLS_OUT_OF_INDEXES)
                 return FALSE;
@@ -99,6 +100,7 @@ DllMain(HINSTANCE hDLL,     /* DLL module handle */
                 destroyThreadLocalData(tlsData);
             /* Release the TLS index. */
             TlsFree(tlsIndex);
+            gssEapFinalize();
             break;
         default:
             break;