This branch was created to contain the "native" auth_token components.
This was required because autobuild restrictions are forcing us to build the native components separate from the java components.
This commit is contained in:
		| @@ -0,0 +1,116 @@ | ||||
| ####################################################################### | ||||
| # | ||||
| #  Copyright (C) 2006 Novell, Inc. | ||||
| # | ||||
| #  This program is free software; you can redistribute it and/or | ||||
| #  modify it under the terms of the GNU General Public | ||||
| #  License as published by the Free Software Foundation; either | ||||
| #  version 2 of the License, or (at your option) any later version. | ||||
| # | ||||
| #  This program is distributed in the hope that it will be useful, | ||||
| #  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
| #  General Public License for more details. | ||||
| # | ||||
| #  You should have received a copy of the GNU General Public | ||||
| #  License along with this program; if not, write to the Free | ||||
| #  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||
| # | ||||
| #  Author: Juan Carlos Luciani <jluciani@novell.com> | ||||
| # | ||||
| ####################################################################### | ||||
|  | ||||
| if DEBUG | ||||
| TARGET_CFG = Debug | ||||
| CFLAGS += -v -w | ||||
| else | ||||
| TARGET_CFG = Release | ||||
| endif | ||||
|  | ||||
| SUBDIRS = | ||||
|  | ||||
| DIST_SUBDIRS = | ||||
|  | ||||
| ROOT = ../../.. | ||||
| CASAINCLUDE = ../../../../CASA/include | ||||
|  | ||||
| LIBDIR = $(ROOT)/$(LIB) | ||||
|  | ||||
| # handle Mono secondary dependencies | ||||
| export MONO_PATH := $(MONO_PATH) | ||||
|  | ||||
| PLATFORMINDEPENDENTSOURCEDIR = .. | ||||
| PLATFORMDEPENDENTSOURCEDIR = . | ||||
|  | ||||
| MODULE_NAME = libcasa_s_authtoken | ||||
| MODULE_EXT = so | ||||
|  | ||||
| CFILES = ../config.c \ | ||||
| 	 ../authtoken.c \ | ||||
| 	 ../principal.c \ | ||||
| 	 ../util.c \ | ||||
| 	 ../validate.c \ | ||||
| 	 ../identoken.c \ | ||||
| 	 platform.c | ||||
|  | ||||
| CSFILES_CSC := | ||||
| INCLUDES = -I. -I.. -I$(CASAINCLUDE) -I../../../include | ||||
| RESOURCES = | ||||
| DEFINES = -Wno-format-extra-args -fno-strict-aliasing  | ||||
| CFLAGS += $(INCLUDES) $(DEFINES) | ||||
| LIBS = -lpthread -ldl -lexpat | ||||
| LDFLAGS = -Bsymbolic -shared -Wl,-soname=$(MODULE_NAME).$(MODULE_EXT) | ||||
|  | ||||
| OBJDIR = ./$(TARGET_CFG)/$(LIB) | ||||
| OBJS = $(addprefix $(OBJDIR)/, $(CFILES:%.c=%.o)) | ||||
|  | ||||
| EXTRA_DIST = $(CFILES) *.h | ||||
|  | ||||
| CUR_DIR := $(shell pwd) | ||||
|  | ||||
| all: $(OBJDIR)/$(MODULE_NAME).$(MODULE_EXT) | ||||
|  | ||||
| # | ||||
| # Pattern based rules. | ||||
| # | ||||
| vpath %.c $(PLATFORMDEPENDENTSOURCEDIR) $(PLATFORMINDEPENDENTSOURCEDIR) | ||||
| vpath %.cpp $(PLATFORMDEPENDENTSOURCEDIR) $(PLATFORMINDEPENDENTSOURCEDIR) | ||||
|  | ||||
| $(OBJDIR)/%.o: %.c | ||||
| 	$(CC) -c $(CFLAGS) -o $@ $< | ||||
|  | ||||
| $(OBJDIR)/%.o: %.cpp | ||||
| 	$(CC) -c $(CFLAGS) -o $@ $< | ||||
|  | ||||
| $(OBJDIR)/$(MODULE_NAME).$(MODULE_EXT): $(OBJDIR) $(OBJS) | ||||
| 	@echo [======== Linking $@ ========] | ||||
| 	$(LINK) -o $@ $(LDFLAGS) $(OBJS) $(LIBS) | ||||
| 	cp -f $(OBJDIR)/$(MODULE_NAME).$(MODULE_EXT) $(LIBDIR)/$(TARGET_CFG)/$(MODULE_NAME).$(MODULE_EXT) | ||||
|  | ||||
| $(OBJDIR): | ||||
| 	[ -d $(OBJDIR) ] || mkdir -p $(OBJDIR) | ||||
| 	[ -d $(LIBDIR) ] || mkdir -p $(LIBDIR) | ||||
| 	[ -d $(LIBDIR)/$(TARGET_CFG) ] || mkdir -p $(LIBDIR)/$(TARGET_CFG) | ||||
|  | ||||
|  | ||||
| install-exec-local: $(OBJDIR)/$(MODULE_NAME).$(MODULE_EXT) | ||||
| 	$(mkinstalldirs) $(DESTDIR)$(libdir) | ||||
| 	$(INSTALL_PROGRAM) $(OBJDIR)/$(MODULE_NAME).$(MODULE_EXT) $(DESTDIR)$(libdir)/ | ||||
|  | ||||
| uninstall-local: | ||||
| 	cd $(DESTDIR)$(libdir); rm -f $(OBJDIR)/$(MODULE_NAME).$(MODULE_EXT) | ||||
| 	rmdir $(DESTDIR)$(libdir) | ||||
|  | ||||
| #installcheck-local: install | ||||
| #	$(mkinstalldirs) $(DESTDIR)$(libdir) | ||||
| #	$(INSTALL_PROGRAM) $(DESTDIR)$(libdir) | ||||
| #	cd $(DESTDIR)$(libdir); $(MONO) | ||||
|  | ||||
| clean-local: | ||||
| 	if [ -d $(TARGET_CFG) ]; then  rm -rf $(TARGET_CFG); fi | ||||
|  | ||||
| distclean-local: | ||||
|  | ||||
| maintainer-clean-local: | ||||
| 	rm -f Makefile.in | ||||
|  | ||||
							
								
								
									
										268
									
								
								CASA-auth-token/native/server/AuthTokenValidate/linux/platform.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										268
									
								
								CASA-auth-token/native/server/AuthTokenValidate/linux/platform.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,268 @@ | ||||
| /*********************************************************************** | ||||
|  *  | ||||
|  *  Copyright (C) 2006 Novell, Inc. All Rights Reserved. | ||||
|  * | ||||
|  *  This library is free software; you can redistribute it and/or | ||||
|  *  modify it under the terms of the GNU Lesser General Public | ||||
|  *  License as published by the Free Software Foundation; version 2.1 | ||||
|  *  of the License. | ||||
|  * | ||||
|  *  This library is distributed in the hope that it will be useful, | ||||
|  *  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  *  Library Lesser General Public License for more details. | ||||
|  * | ||||
|  *  You should have received a copy of the GNU Lesser General Public | ||||
|  *  License along with this library; if not, Novell, Inc. | ||||
|  *  | ||||
|  *  To contact Novell about this file by physical or electronic mail,  | ||||
|  *  you may find current contact information at www.novell.com. | ||||
|  *  | ||||
|  *  Author: Juan Carlos Luciani <jluciani@novell.com> | ||||
|  * | ||||
|  ***********************************************************************/ | ||||
|  | ||||
| //===[ Include files ]===================================================== | ||||
|  | ||||
| #include "internal.h" | ||||
|  | ||||
| //===[ Type definitions ]================================================== | ||||
|  | ||||
| // | ||||
| // Platform Mutex structure | ||||
| // | ||||
| typedef struct _PlatformMutex | ||||
| { | ||||
|    pthread_mutex_t   mutex; | ||||
|  | ||||
| } PlatformMutex, *PPlatformMutex; | ||||
|  | ||||
| //===[ Function prototypes ]=============================================== | ||||
|  | ||||
| //===[ Global variables ]================================================== | ||||
|  | ||||
| // | ||||
| // Module synchronization mutex | ||||
| //  | ||||
| pthread_mutex_t   g_hModuleMutex = PTHREAD_MUTEX_INITIALIZER; | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| HANDLE | ||||
| PlatAllocMutex(void) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| //  Environment: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    PlatformMutex        *pPlatMutex; | ||||
|    pthread_mutexattr_t  mutexAttr = {PTHREAD_MUTEX_RECURSIVE}; | ||||
|  | ||||
|    DbgTrace(2, "-PlatAllocMutex- Start\n", 0); | ||||
|  | ||||
|    // Allocate space for our mutex structure | ||||
|    pPlatMutex = malloc(sizeof(*pPlatMutex)); | ||||
|    if (pPlatMutex) | ||||
|    { | ||||
|       // Finish initializing the mutex | ||||
|       pthread_mutex_init(&pPlatMutex->mutex, &mutexAttr); | ||||
|    } | ||||
|    else | ||||
|    { | ||||
|       DbgTrace(0, "-PlatAllocMutex- Memory allocation failure\n", 0); | ||||
|    } | ||||
|  | ||||
|    DbgTrace(2, "-PlatAllocMutex- End, retHandle = %08X\n", (unsigned int) pPlatMutex); | ||||
|  | ||||
|    return (HANDLE) pPlatMutex; | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| void | ||||
| PlatDestroyMutex(HANDLE hMutex) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| //  Environment: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    PlatformMutex  *pPlatMutex = (PlatformMutex*) hMutex; | ||||
|  | ||||
|    DbgTrace(2, "-PlatDestroyMutex- Start\n", 0); | ||||
|  | ||||
|    // Free the resources associated with the mutex | ||||
|    pthread_mutex_destroy(&pPlatMutex->mutex); | ||||
|    free(pPlatMutex); | ||||
|  | ||||
|    DbgTrace(2, "-PlatDestroyMutex- End\n", 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| void | ||||
| PlatAcquireMutex(HANDLE hMutex) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| //  Environment: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    PlatformMutex  *pPlatMutex = (PlatformMutex*) hMutex; | ||||
|  | ||||
|    DbgTrace(2, "-PlatAcquireMutex- Start\n", 0); | ||||
|  | ||||
|    // Acquire the mutex | ||||
|    pthread_mutex_lock(&pPlatMutex->mutex); | ||||
|  | ||||
|    DbgTrace(2, "-PlatAcquireMutex- End\n", 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| void | ||||
| PlatReleaseMutex(HANDLE hMutex) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| //  Environment: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    PlatformMutex  *pPlatMutex = (PlatformMutex*) hMutex; | ||||
|  | ||||
|    DbgTrace(2, "-PlatReleaseMutex- Start\n", 0); | ||||
|  | ||||
|    // Release the mutex | ||||
|    pthread_mutex_unlock(&pPlatMutex->mutex); | ||||
|  | ||||
|    DbgTrace(2, "-PlatRelease- End\n", 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| LIB_HANDLE | ||||
| OpenLibrary( | ||||
|    IN    char *pFileName) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    LIB_HANDLE  libHandle; | ||||
|  | ||||
|  | ||||
|    DbgTrace(1, "-OpenLibrary- Start\n", 0); | ||||
|  | ||||
|    libHandle = dlopen(pFileName, RTLD_LAZY); | ||||
|    if (libHandle == NULL) | ||||
|    { | ||||
|       DbgTrace(0, "-OpenLibrary- Not able to load library, error = %d\n", dlerror()); | ||||
|    } | ||||
|  | ||||
|    DbgTrace(1, "-OpenLibrary- End, handle = %08X\n", libHandle); | ||||
|  | ||||
|    return libHandle; | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| void | ||||
| CloseLibrary( | ||||
|    IN    LIB_HANDLE libHandle) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    DbgTrace(1, "-CloseLibrary- Start\n", 0); | ||||
|  | ||||
|    dlclose(libHandle); | ||||
|  | ||||
|    DbgTrace(1, "-CloseLibrary- End\n", 0); | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| void* | ||||
| GetFunctionPtr( | ||||
|    IN    LIB_HANDLE libHandle, | ||||
|    IN    char *pFunctionName) | ||||
| // | ||||
| //  Arguments:  | ||||
| // | ||||
| //  Returns:    | ||||
| // | ||||
| //  Abstract:   | ||||
| // | ||||
| //  Notes: | ||||
| // | ||||
| // L2 | ||||
| //=======================================================================-- | ||||
| { | ||||
|    void  *pFuncPtr; | ||||
|  | ||||
|    DbgTrace(1, "-GetFunctionPtr- Start\n", 0); | ||||
|  | ||||
|    pFuncPtr = dlsym(libHandle, pFunctionName); | ||||
|    if (pFuncPtr == NULL) | ||||
|    { | ||||
|       DbgTrace(0, "-GetFunctionPtr- Not able to obtain func ptr, error = %d\n", dlerror()); | ||||
|    } | ||||
|  | ||||
|    DbgTrace(1, "-GetFunctionPtr- End, pFuncPtr = %08X\n", pFuncPtr); | ||||
|  | ||||
|    return pFuncPtr; | ||||
| } | ||||
|  | ||||
|  | ||||
| //++======================================================================= | ||||
| //++======================================================================= | ||||
| //++======================================================================= | ||||
|  | ||||
							
								
								
									
										100
									
								
								CASA-auth-token/native/server/AuthTokenValidate/linux/platform.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								CASA-auth-token/native/server/AuthTokenValidate/linux/platform.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,100 @@ | ||||
| /*********************************************************************** | ||||
|  *  | ||||
|  *  Copyright (C) 2006 Novell, Inc. All Rights Reserved. | ||||
|  * | ||||
|  *  This library is free software; you can redistribute it and/or | ||||
|  *  modify it under the terms of the GNU Lesser General Public | ||||
|  *  License as published by the Free Software Foundation; version 2.1 | ||||
|  *  of the License. | ||||
|  * | ||||
|  *  This library is distributed in the hope that it will be useful, | ||||
|  *  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||
|  *  Library Lesser General Public License for more details. | ||||
|  * | ||||
|  *  You should have received a copy of the GNU Lesser General Public | ||||
|  *  License along with this library; if not, Novell, Inc. | ||||
|  *  | ||||
|  *  To contact Novell about this file by physical or electronic mail,  | ||||
|  *  you may find current contact information at www.novell.com. | ||||
|  *  | ||||
|  *  Author: Juan Carlos Luciani <jluciani@novell.com> | ||||
|  * | ||||
|  ***********************************************************************/ | ||||
|  | ||||
| #define _GNU_SOURCE | ||||
|  | ||||
| //===[ Include files ]===================================================== | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <stdbool.h> | ||||
| #include <string.h> | ||||
| #include <syslog.h> | ||||
| #include <pthread.h> | ||||
| #include <string.h> | ||||
| #include <ctype.h> | ||||
| #include <errno.h> | ||||
| #include <dlfcn.h> | ||||
|  | ||||
| //===[ Type definitions ]================================================== | ||||
|  | ||||
| #define HANDLE void* | ||||
|  | ||||
| #ifndef CONTAINING_RECORD | ||||
| #define CONTAINING_RECORD(address, type, field) ((type *)(     \ | ||||
|              (char*)(address) -                                \ | ||||
|              (char*)(&((type *)0)->field))) | ||||
| #endif | ||||
|  | ||||
|  | ||||
| // | ||||
| // DbgTrace macro define | ||||
| // | ||||
| #define DbgTrace(LEVEL, X, Y) {                          \ | ||||
| char printBuff[256];                                     \ | ||||
|    if (LEVEL == 0 || DebugLevel >= LEVEL)                \ | ||||
|    {                                                     \ | ||||
|       _snprintf(printBuff, sizeof(printBuff), X, Y);     \ | ||||
|       fprintf(stderr, "CASA_AuthTokenValidate %s", printBuff);    \ | ||||
|    }                                                     \ | ||||
| } | ||||
| /*#define DbgTrace(LEVEL, X, Y) {                                                        \ | ||||
|    if (LEVEL == 0 || DebugLevel >= LEVEL)                                              \ | ||||
|    {                                                                                   \ | ||||
|       openlog("CASA_AuthTokenValidate", LOG_CONS | LOG_NOWAIT | LOG_ODELAY, LOG_USER); \ | ||||
|       syslog(LOG_USER | LOG_INFO, X, Y);                                               \ | ||||
|       closelog();                                                                      \ | ||||
|    }                                                                                   \ | ||||
| }*/ | ||||
|  | ||||
|  | ||||
| // | ||||
| // Deal with function name mapping issues | ||||
| //  | ||||
| #define _snprintf snprintf | ||||
|  | ||||
| // | ||||
| // Module synchronization | ||||
| //  | ||||
| extern pthread_mutex_t  g_hModuleMutex; | ||||
|  | ||||
| #define AcquireModuleMutex    pthread_mutex_lock(&g_hModuleMutex) | ||||
| #define ReleaseModuleMutex    pthread_mutex_unlock(&g_hModuleMutex) | ||||
|  | ||||
| // | ||||
| // Other definitions | ||||
| // | ||||
| #define LIB_HANDLE void* | ||||
|  | ||||
|  | ||||
| //===[ Inlines functions   ]=============================================== | ||||
|  | ||||
| //===[ Function prototypes ]=============================================== | ||||
|  | ||||
| //===[ Global externals ]================================================== | ||||
|  | ||||
| //===[ External prototypes ]=============================================== | ||||
|  | ||||
| //========================================================================= | ||||
|  | ||||
		Reference in New Issue
	
	Block a user