Changeset 202
- Timestamp:
- 12/14/11 10:46:45 (5 months ago)
- Location:
- trunk
- Files:
-
- 4 edited
-
configure.ac (modified) (2 diffs)
-
src/Makefile.am (modified) (1 diff)
-
src/Makefile.mak (modified) (2 diffs)
-
src/libpkcs11.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/configure.ac
r200 r202 181 181 fi 182 182 183 AC_ARG_VAR([LTLIB_CFLAGS], [C compiler flags for libltdl]) 184 AC_ARG_VAR([LTLIB_LIBS], [linker flags for libltdl]) 185 if test -z "${LTLIB_LIBS}"; then 183 if test "${WIN32}" != "yes"; then 186 184 AC_CHECK_LIB( 187 [ ltdl],188 [ lt_dlopen],189 [LTLIB_LIBS="-lltdl"],190 [AC_MSG_ERROR([l tdl not found, please install libltdl and/or libtool])]185 [dl], 186 [dlopen], 187 , 188 [AC_MSG_ERROR([libdl required])] 191 189 ) 192 193 fi 194 saved_CFLAGS="${CFLAGS}" 195 CFLAGS="${CFLAGS} ${LTLIB_CFLAGS}" 196 AC_CHECK_HEADER( 197 [ltdl.h], 198 , 199 [AC_MSG_ERROR([ltdl.h not found, please install libltdl and/or libtool])] 200 ) 201 CFLAGS="${saved_CFLAGS}" 190 fi 202 191 203 192 PKG_CHECK_MODULES( … … 274 263 Libraries: ${LIBS} 275 264 276 LTLIB_CFLAGS: ${LTLIB_CFLAGS}277 LTLIB_LIBS: ${LTLIB_LIBS}278 265 OPENSSL_CFLAGS: ${OPENSSL_CFLAGS} 279 266 OPENSSL_LIBS: ${OPENSSL_LIBS} -
trunk/src/Makefile.am
r148 r202 17 17 dist_noinst_DATA = versioninfo.rc 18 18 endif 19 libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS) $(LTLIB_CFLAGS)20 libp11_la_LIBADD = $(OPENSSL_LIBS) $(LTLIB_LIBS)19 libp11_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS) 20 libp11_la_LIBADD = $(OPENSSL_LIBS) 21 21 libp11_la_LDFLAGS = $(AM_LDFLAGS) \ 22 22 -version-info @LIBP11_LT_CURRENT@:@LIBP11_LT_REVISION@:@LIBP11_LT_AGE@ \ -
trunk/src/Makefile.mak
r147 r202 1 LIBLTDL_INC = # E.g. /IC:\libtool-1.5.8-lib\include2 LIBLTDL_LIB = # E.g. C:\libtool-1.5.8-lib\lib\libltdl.lib3 4 1 OPENSSL_INC = /IC:\openssl\include 5 2 OPENSSL_LIB = C:\openssl\out32dll\libeay32.lib 6 3 7 COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) $(LIBLTDL_INC)/D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN4 COPTS = /Zi /MD /nologo /I..\ /I. $(OPENSSL_INC) /D_WIN32_WINNT=0x0400 /DWIN32 /DWIN32_LEAN_AND_MEAN 8 5 LINKFLAGS = /DEBUG /NOLOGO /INCREMENTAL:NO /MACHINE:IX86 9 6 … … 29 26 type $*.exports >> $*.def 30 27 link $(LINKFLAGS) /dll /def:$*.def /implib:$*.lib /out:$(TARGET) \ 31 $(OBJECTS) $(OPENSSL_LIB) $(LIBLTDL_LIB)versioninfo.res28 $(OBJECTS) $(OPENSSL_LIB) versioninfo.res 32 29 if EXIST $*.dll.manifest mt -manifest $*.dll.manifest -outputresource:$*.dll;2 33 30 -
trunk/src/libpkcs11.c
r142 r202 28 28 #include <stdio.h> 29 29 #include <string.h> 30 #include <ltdl.h> 30 #ifdef WIN32 31 #include <windows.h> 32 #else 33 #include <dlfcn.h> 34 #endif 31 35 #include "libp11-int.h" 32 36 … … 35 39 struct sc_pkcs11_module { 36 40 unsigned int _magic; 37 lt_dlhandlehandle;41 void *handle; 38 42 }; 39 43 typedef struct sc_pkcs11_module sc_pkcs11_module_t; … … 53 57 return NULL; 54 58 55 if (lt_dlinit() != 0)56 return NULL;57 58 59 mod = (sc_pkcs11_module_t *) calloc(1, sizeof(*mod)); 59 60 mod->_magic = MAGIC; 60 61 61 mod->handle = lt_dlopen(mspec); 62 #ifdef WIN32 63 mod->handle = LoadLibraryA(mspec); 64 #else 65 mod->handle = dlopen(mspec, RTLD_NOW); 66 #endif 67 62 68 if (mod->handle == NULL) 63 69 goto failed; 64 70 65 /* Get the list of function pointers */ 66 c_get_function_list = (CK_RV (*)(CK_FUNCTION_LIST_PTR_PTR)) 67 lt_dlsym(mod->handle, "C_GetFunctionList"); 71 #ifdef WIN32 72 c_get_function_list = (CK_C_GetFunctionList)GetProcAddress ( 73 mod->handle, 74 "C_GetFunctionList" 75 ); 76 #else 77 { 78 /* 79 * Make compiler happy! 80 */ 81 void *p = dlsym( 82 mod->handle, 83 "C_GetFunctionList" 84 ); 85 memmove( 86 &c_get_function_list, 87 &p, 88 sizeof(void *) 89 ); 90 } 91 #endif 92 68 93 if (!c_get_function_list) 69 94 goto failed; … … 90 115 return CKR_ARGUMENTS_BAD; 91 116 92 if (lt_dlclose(mod->handle) < 0) 93 return CKR_FUNCTION_FAILED; 117 #ifdef WIN32 118 FreeLibrary(mod->handle); 119 #else 120 dlclose(mod->handle); 121 #endif 94 122 95 123 memset(mod, 0, sizeof(*mod)); 96 124 free(mod); 97 125 98 lt_dlexit();99 100 126 return CKR_OK; 101 127 }
Note: See TracChangeset
for help on using the changeset viewer.
