Initial changes for Linux port of the CASA-auth-token client to linux.
This commit is contained in:
		| @@ -46,6 +46,7 @@ char  mechConfigFolderPartialPath[]; | ||||
| UINT32 g_ulCount  = 0; | ||||
| UINT32 g_ulLock = 0; | ||||
| HANDLE g_hModule; | ||||
| HANDLE g_hModuleMutex; | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| @@ -78,11 +79,12 @@ BOOL APIENTRY DllMain( | ||||
|             strcpy(mechConfigFolder, programFilesFolder); | ||||
|             PathAppend(mechConfigFolder, mechConfigFolderPartialPath); | ||||
|  | ||||
|             // Initialize the library | ||||
|             if (Initialize() != 0) | ||||
|             // Allocate module mutex | ||||
|             g_hModuleMutex = CreateMutex(NULL, FALSE, NULL); | ||||
|             if (! g_hModuleMutex) | ||||
|             { | ||||
|                // Failed to initialize the library | ||||
|                OutputDebugString("CASAAUTH -DllMain- Library initialization failed\n"); | ||||
|                // Module initialization failed | ||||
|                OutputDebugString("CASAAUTH -DllMain- Failed to create mutex\n"); | ||||
|                retStatus = FALSE; | ||||
|             } | ||||
|          } | ||||
|   | ||||
| @@ -61,10 +61,6 @@ char  clientConfigFolderPartialPath[] = "Novell\\Casa\\Etc\\Auth"; | ||||
| char  mechConfigFolder[MAX_PATH]; | ||||
| char  mechConfigFolderPartialPath[] = "Novell\\Casa\\Etc\\Auth\\Mechanisms"; | ||||
|  | ||||
| // Synchronization mutex for the dll initialization | ||||
| static | ||||
| HANDLE  g_hInitializationMutex; | ||||
|  | ||||
| // Path separator | ||||
| char  pathCharString[] = "\\"; | ||||
|  | ||||
| @@ -113,11 +109,11 @@ CreateUserMutex( | ||||
|             if (sprintf(mutexName, "Global\\CASA_Auth_Mutex_%s", pUsername) != -1) | ||||
|             { | ||||
|                *phMutex = CreateMutex(&mutexAttributes, | ||||
|                                         FALSE, | ||||
|                                         mutexName); | ||||
|                                       FALSE, | ||||
|                                       mutexName); | ||||
|                if (*phMutex == NULL) | ||||
|                { | ||||
|                   DbgTrace(0, "-CreateUserMutex- CreteMutex failed, error = %d\n", GetLastError()); | ||||
|                   DbgTrace(0, "-CreateUserMutex- CreateMutex failed, error = %d\n", GetLastError()); | ||||
|                   retStatus = CasaStatusBuild(CASA_SEVERITY_ERROR, | ||||
|                                               CASA_FACILITY_AUTHTOKEN, | ||||
|                                               CASA_STATUS_UNSUCCESSFUL); | ||||
| @@ -245,89 +241,6 @@ DestroyUserMutex( | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| CasaStatus | ||||
| CreateInitializationMutex(void) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    int   retStatus = -1; | ||||
|  | ||||
|  | ||||
|    DbgTrace(2, "-CreateInitializationMutex- Start\n", 0); | ||||
|  | ||||
|    // Create a cache mutex only applicable to the current process | ||||
|    g_hInitializationMutex = CreateMutex(NULL, FALSE, NULL); | ||||
|  | ||||
|    if (g_hInitializationMutex != NULL) | ||||
|    { | ||||
| 	  retStatus = CASA_STATUS_SUCCESS; | ||||
|    } | ||||
|  | ||||
|    DbgTrace(2, "-CreateInitializationMutex- End\n", 0); | ||||
|  | ||||
|    return retStatus; | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| void | ||||
| AcquireInitializationMutex(void) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    DbgTrace(2, "-AcquireInitializationMutex- Start\n", 0); | ||||
|  | ||||
|    WaitForSingleObject(g_hInitializationMutex, INFINITE); | ||||
|  | ||||
|    DbgTrace(2, "-AcquireInitializationMutex- End\n", 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| void | ||||
| ReleaseInitializationMutex(void) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    DbgTrace(2, "-ReleaseInitializationMutex- Start\n", 0); | ||||
|  | ||||
|    if (ReleaseMutex(g_hInitializationMutex) == 0) | ||||
|    { | ||||
| 	  DbgTrace(0, "-ReleaseInitializationMutex- ReleaseMutex failed, error\n", 0); | ||||
|    } | ||||
|  | ||||
|    DbgTrace(2, "-ReleaseInitializationMutex- End\n", 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| LIB_HANDLE | ||||
| OpenLibrary( | ||||
| @@ -346,7 +259,6 @@ OpenLibrary( | ||||
| { | ||||
|    LIB_HANDLE  libHandle; | ||||
|  | ||||
|  | ||||
|    DbgTrace(1, "-OpenLibrary- Start\n", 0); | ||||
|  | ||||
|    libHandle = LoadLibrary(pFileName); | ||||
| @@ -404,7 +316,6 @@ GetFunctionPtr( | ||||
| { | ||||
|    void  *pFuncPtr; | ||||
|  | ||||
|  | ||||
|    DbgTrace(1, "-GetFunctionPtr- Start\n", 0); | ||||
|  | ||||
|    pFuncPtr = GetProcAddress(libHandle, pFunctionName); | ||||
| @@ -439,7 +350,6 @@ NormalizeHostName( | ||||
|    LIST_ENTRY                    *pListEntry; | ||||
|    NormalizedHostNameCacheEntry  *pEntry = NULL; | ||||
|  | ||||
|  | ||||
|    DbgTrace(1, "-NormalizeHostName- Start\n", 0); | ||||
|  | ||||
|    // Obtain our synchronization mutex | ||||
|   | ||||
| @@ -49,7 +49,7 @@ | ||||
| //   if (LEVEL == 0 || DebugLevel >= LEVEL)                \ | ||||
| //   {                                                     \ | ||||
| //      _snprintf(printBuff, sizeof(printBuff), X, Y);     \ | ||||
| //      printf("AuthToken %s", printBuff);                 \ | ||||
| //      printf("CASA_AuthToken %s", printBuff);                 \ | ||||
| //   }                                                     \ | ||||
| //} | ||||
| #define DbgTrace(LEVEL, X, Y) {                                \ | ||||
| @@ -57,35 +57,13 @@ char formatBuff[128];                                          \ | ||||
| char printBuff[256];                                           \ | ||||
|    if (LEVEL == 0 || DebugLevel >= LEVEL)                      \ | ||||
|    {                                                           \ | ||||
|       strcpy(formatBuff, "AuthToken ");                        \ | ||||
|       strcpy(formatBuff, "CASA_AuthToken ");                        \ | ||||
|       strncat(formatBuff, X, sizeof(formatBuff) - 10);         \ | ||||
|       _snprintf(printBuff, sizeof(printBuff), formatBuff, Y);  \ | ||||
|       OutputDebugString(printBuff);                            \ | ||||
|    }                                                           \ | ||||
| } | ||||
|  | ||||
|  | ||||
| #define bool BOOLEAN | ||||
| #define true TRUE | ||||
| #define false FALSE | ||||
|  | ||||
| // | ||||
| // Auth Cache Entry definition | ||||
| // | ||||
| typedef struct _AuthCacheEntry | ||||
| { | ||||
| //   LIST_ENTRY  listEntry; | ||||
| //   int         refCount; | ||||
|    int         status; | ||||
|    DWORD       creationTime; | ||||
|    DWORD       expirationTime; | ||||
|    BOOL        doesNotExpire; | ||||
| //   char        *pHostName; | ||||
| //   char        *pCacheKeyName; | ||||
|    char        token[1]; | ||||
|      | ||||
| } AuthCacheEntry, *PAuthCacheEntry; | ||||
|  | ||||
| // | ||||
| // Rpc Session definition | ||||
| // | ||||
| @@ -96,11 +74,18 @@ typedef struct _RpcSession | ||||
|  | ||||
| } RpcSession, *PRpcSession; | ||||
|  | ||||
|  | ||||
| // | ||||
| // Other definitions | ||||
| // | ||||
| #define LIB_HANDLE HMODULE | ||||
| #define bool BOOLEAN | ||||
| #define true TRUE | ||||
| #define false FALSE | ||||
| #define long DWORD | ||||
|  | ||||
| #define AcquireModuleMutex    WaitForSingleObjectEx(g_hModuleMutex, INFINITE, FALSE) | ||||
| #define ReleaseModuleMutex    ReleaseMutex(g_hModuleMutex) | ||||
|  | ||||
| //===[ Inlines functions   ]=============================================== | ||||
|  | ||||
| @@ -110,5 +95,9 @@ typedef struct _RpcSession | ||||
|  | ||||
| //===[ External prototypes ]=============================================== | ||||
|  | ||||
| //===[ External data ]===================================================== | ||||
|  | ||||
| extern HANDLE g_hModuleMutex; | ||||
|  | ||||
| //========================================================================= | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user