CVS update: php31/ext/zlib

From: Date: Sun, 30 Aug 1998 19:27:42 +0000
Subject: CVS update: php31/ext/zlib
Groups: php.dev 
Request: Send a blank email to php-dev+get-675@lists.php.net to get a copy of this message
Date: Sunday August 30, 1998 @ 15:27 Author: shane Update of /repository/php31/ext/zlib In directory asf:/u2/tmp/cvs-serv26438/ext/zlib Modified Files: zlib.c zlib.dsp Log Message: Zlib compiles now. Index: php31/ext/zlib/zlib.c diff -c php31/ext/zlib/zlib.c:2.2 php31/ext/zlib/zlib.c:2.3 *** php31/ext/zlib/zlib.c:2.2 Sun Aug 16 05:09:51 1998 --- php31/ext/zlib/zlib.c Sun Aug 30 15:27:41 1998 *************** *** 22,28 **** | Stefan Röhrich <sr@linux.de> | +----------------------------------------------------------------------+ */ ! /* $Id: zlib.c,v 2.2 1998/08/16 09:09:51 sr Exp $ */ #ifdef THREAD_SAFE #include "tls.h" --- 22,32 ---- | Stefan Röhrich <sr@linux.de> | +----------------------------------------------------------------------+ */ ! /* $Id: zlib.c,v 2.3 1998/08/30 19:27:41 shane Exp $ */ ! #if !PHP_31 && defined(THREAD_SAFE) ! #undef THREAD_SAFE ! #endif ! #define IS_EXT_MODULE #ifdef THREAD_SAFE #include "tls.h" *************** *** 35,45 **** #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> ! #if MSVC5 #include <windows.h> #include <winsock.h> #define O_RDONLY _O_RDONLY #include "win32/param.h" #else #include <sys/param.h> /* #include <sys/uio.h> */ --- 39,53 ---- #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> ! #if (WIN32|WINNT) #include <windows.h> #include <winsock.h> #define O_RDONLY _O_RDONLY + #if PHP_31 + #include "os/nt/param.h" + #else #include "win32/param.h" + #endif #else #include <sys/param.h> /* #include <sys/uio.h> */ *************** *** 48,61 **** #include "internal_functions.h" #include "safe_mode.h" #include "php3_list.h" #include "php3_string.h" #include "php3_zlib.h" #include "fopen-wrappers.h" #if HAVE_PWD_H #if WIN32|WINNT - #ifdef HAVE_UNISTD_H - #undef HAVE_UNISTD_H - #endif #include "win32/pwd.h" #else #include <pwd.h> --- 56,70 ---- #include "internal_functions.h" #include "safe_mode.h" #include "php3_list.h" + #if PHP_31 + #include "ext/standard/php3_string.h" + #else #include "php3_string.h" + #endif #include "php3_zlib.h" #include "fopen-wrappers.h" #if HAVE_PWD_H #if WIN32|WINNT #include "win32/pwd.h" #else #include <pwd.h> *************** *** 63,72 **** --- 72,89 ---- #endif #include "snprintf.h" #if HAVE_ZLIB + #if defined(HAVE_UNISTD_H) && (WIN32|WINNT) + #undef HAVE_UNISTD_H + #endif + #include <zlib.h> #if COMPILE_DL + #if PHP_31 + #include "ext/phpdl.h" + #else #include "dl/phpdl.h" + #endif #ifndef PUTS #define PUTS(a) php3_printf("%s",a) #endif *************** *** 78,106 **** #endif #endif - #if defined(THREAD_SAFE) - DWORD ZLIBtls; - static int numthreads=0; - void *zlib_mutex; typedef struct zlib_global_struct{ int gzgetss_state; int le_zp; }zlib_global_struct; #define ZLIB_GLOBAL(a) zlib_globals->a ! #define ZLIB_TLS_VARS \ ! zlib_global_struct *zlib_globals; \ ! zlib_globals=TlsGetValue(ZLIBtls); #else - static int gzgetss_state = 0; - int le_zp; #define ZLIB_GLOBAL(a) a #define ZLIB_TLS_VARS #endif function_entry php3_zlib_functions[] = { {"readgzfile", php3_readgzfile, NULL}, {"gzrewind", php3_gzrewind, NULL}, --- 95,137 ---- #endif #endif + + #if defined(THREAD_SAFE) typedef struct zlib_global_struct{ + #endif int gzgetss_state; int le_zp; + #if PHP_31 + int magic_quotes_runtime; + int safe_mode; + char *include_path; + char *doc_root; + #endif + #if defined(THREAD_SAFE) }zlib_global_struct; + #endif + + #if defined(THREAD_SAFE) + DWORD ZLIBtls; + static int numthreads=0; + void *zlib_mutex; #define ZLIB_GLOBAL(a) zlib_globals->a ! #define ZLIB_TLS_VARS zlib_global_struct *PHP3_TLS_GET(ZLIBtls,zlib_globals); #else #define ZLIB_GLOBAL(a) a #define ZLIB_TLS_VARS #endif + #if PHP_31 + # define ZLIB_INI(a) ZLIB_GLOBAL(a) + #else + # define ZLIB_INI(a) php3_ini.a + #endif + function_entry php3_zlib_functions[] = { {"readgzfile", php3_readgzfile, NULL}, {"gzrewind", php3_gzrewind, NULL}, *************** *** 126,184 **** #if defined(COMPILE_DL) DLEXPORT php3_module_entry *get_module(void) { return &php3_zlib_module_entry; } - - #if (WIN32|WINNT) && defined(THREAD_SAFE) - - /*NOTE: You should have an odbc.def file where you - export DllMain*/ - BOOL WINAPI DllMain(HANDLE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved) - { - return 1; - } - #endif #endif int php3_minit_zlib(INIT_FUNC_ARGS) { ! #if defined(THREAD_SAFE) zlib_global_struct *zlib_globals; ! #if !defined(COMPILE_DL) ! CREATE_MUTEX(zlib_mutex,"ZLib_TLS"); ! SET_MUTEX(zlib_mutex); numthreads++; if (numthreads==1){ ! if ((ZLIBtls=TlsAlloc())==0xFFFFFFFF){ ! FREE_MUTEX(zlib_mutex); ! return 0; ! }} ! FREE_MUTEX(zlib_mutex); ! #endif ! zlib_globals = (zlib_global_struct *) LocalAlloc(LPTR, sizeof(zlib_global_struct)); ! TlsSetValue(ZLIBtls, (void *) zlib_globals); ! #endif ! ZLIB_GLOBAL(le_zp) = register_list_destructors(gzclose,NULL); return SUCCESS; } int php3_mshutdown_zlib(void){ #if defined(THREAD_SAFE) ! zlib_global_struct *zlib_globals; ! zlib_globals = TlsGetValue(ZLIBtls); ! if (zlib_globals != 0) ! LocalFree((HLOCAL) zlib_globals); ! #if !defined(COMPILE_DL) ! SET_MUTEX(zlib_mutex); numthreads--; ! if (!numthreads){ ! if (!TlsFree(ZLIBtls)){ ! FREE_MUTEX(zlib_mutex); ! return 0; ! }} ! FREE_MUTEX(zlib_mutex); ! #endif #endif return SUCCESS; } --- 157,207 ---- #if defined(COMPILE_DL) DLEXPORT php3_module_entry *get_module(void) { return &php3_zlib_module_entry; } #endif int php3_minit_zlib(INIT_FUNC_ARGS) { ! #ifdef THREAD_SAFE zlib_global_struct *zlib_globals; ! PHP3_MUTEX_ALLOC(zlib_mutex); ! PHP3_MUTEX_LOCK(zlib_mutex); numthreads++; if (numthreads==1){ ! if (!PHP3_TLS_PROC_STARTUP(ZLIBtls)){ ! PHP3_MUTEX_UNLOCK(zlib_mutex); ! PHP3_MUTEX_FREE(zlib_mutex); ! return FAILURE; ! } ! } ! PHP3_MUTEX_UNLOCK(zlib_mutex); ! if(!PHP3_TLS_THREAD_INIT(ZLIBtls,zlib_globals,zlib_global_struct)){ ! PHP3_MUTEX_FREE(zlib_mutex); ! return FAILURE; ! } ! #endif ! /* get our ini variables here */ ! cfg_get_long("safe_mode",&ZLIB_INI(safe_mode)); ! cfg_get_long("magic_quotes_runtime",&ZLIB_INI(magic_quotes_runtime)); ! cfg_get_string("doc_root",&ZLIB_INI(doc_root)); ! cfg_get_string("include_path",&ZLIB_INI(include_path)); ! ZLIB_GLOBAL(le_zp) = register_list_destructors(gzclose,NULL); return SUCCESS; } int php3_mshutdown_zlib(void){ #if defined(THREAD_SAFE) ! ZLIB_TLS_VARS; ! PHP3_TLS_THREAD_FREE(zlib_globals); ! PHP3_MUTEX_LOCK(zlib_mutex); numthreads--; ! if (numthreads<1){ ! PHP3_TLS_PROC_SHUTDOWN(ZLIBtls); ! PHP3_MUTEX_UNLOCK(zlib_mutex); ! PHP3_MUTEX_FREE(zlib_mutex); ! return SUCCESS; ! } ! PHP3_MUTEX_UNLOCK(zlib_mutex); #endif return SUCCESS; } *************** *** 188,194 **** PUTS("Zlib support active (compiled with "); PUTS(ZLIB_VERSION); PUTS(", linked with "); ! PUTS(zlibVersion()); PUTS(")."); } --- 211,217 ---- PUTS("Zlib support active (compiled with "); PUTS(ZLIB_VERSION); PUTS(", linked with "); ! PUTS((char *)zlibVersion()); PUTS(")."); } *************** *** 196,206 **** static gzFile php3_gzopen_wrapper(char *path, char *mode, int options) { ! if (options & USE_PATH && php3_ini.include_path != NULL) { ! return php3_gzopen_with_path(path, mode, php3_ini.include_path, NULL); } else { ! if (options & ENFORCE_SAFE_MODE && php3_ini.safe_mode && (!_php3_checkuid(path,1))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner of file to be read."); return NULL; } --- 219,230 ---- static gzFile php3_gzopen_wrapper(char *path, char *mode, int options) { ! ZLIB_TLS_VARS; ! if (options & USE_PATH && ZLIB_INI(include_path) != NULL) { ! return php3_gzopen_with_path(path, mode, ZLIB_INI(include_path), NULL); } else { ! if (options & ENFORCE_SAFE_MODE && ZLIB_INI(safe_mode) && (!_php3_checkuid(path,1))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner of file to be read."); return NULL; } *************** *** 219,224 **** --- 243,249 ---- char trypath[MAXPATHLEN + 1]; struct stat sb; gzFile *zp; + ZLIB_TLS_VARS; if (opened_path) { *opened_path = NULL; *************** *** 226,232 **** /* Relative path open */ if (*filename == '.') { ! if (php3_ini.safe_mode &&(!_php3_checkuid(filename,2))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); return(NULL); } --- 251,257 ---- /* Relative path open */ if (*filename == '.') { ! if (ZLIB_INI(safe_mode) &&(!_php3_checkuid(filename,2))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); return(NULL); } *************** *** 244,251 **** #else if (*filename == '/') { #endif ! if (php3_ini.safe_mode) { ! snprintf(trypath,MAXPATHLEN,"%s%s",php3_ini.doc_root,filename); if (!_php3_checkuid(trypath,2)) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); return(NULL); --- 269,276 ---- #else if (*filename == '/') { #endif ! if (ZLIB_INI(safe_mode)) { ! snprintf(trypath,MAXPATHLEN,"%s%s",ZLIB_INI(doc_root),filename); if (!_php3_checkuid(trypath,2)) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); return(NULL); *************** *** 263,269 **** } if (!path || (path && !*path)) { ! if (php3_ini.safe_mode &&(!_php3_checkuid(filename,2))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); return(NULL); } --- 288,294 ---- } if (!path || (path && !*path)) { ! if (ZLIB_INI(safe_mode) &&(!_php3_checkuid(filename,2))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); return(NULL); } *************** *** 290,296 **** end++; } snprintf(trypath, MAXPATHLEN, "%s/%s", ptr, filename); ! if (php3_ini.safe_mode) { if (stat(trypath,&sb) == 0 &&(!_php3_checkuid(trypath,2))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); efree(pathbuf); --- 315,321 ---- end++; } snprintf(trypath, MAXPATHLEN, "%s/%s", ptr, filename); ! if (ZLIB_INI(safe_mode)) { if (stat(trypath,&sb) == 0 &&(!_php3_checkuid(trypath,2))) { php3_error(E_WARNING,"SAFE MODE Restriction in effect. Invalid owner."); efree(pathbuf); *************** *** 321,326 **** --- 346,352 ---- char *slashed, buf[8192]; register int i=0; int use_include_path = 0; + ZLIB_TLS_VARS; /* check args */ switch (ARG_COUNT(ht)) { *************** *** 355,361 **** /* Now loop through the file and do the magic quotes thing if needed */ memset(buf,0,8191); while((int)gzgets(zp, buf, 8191)) { ! if (php3_ini.magic_quotes_runtime) { int len; slashed = _php3_addslashes(buf,0,&len,0); /* 0 = don't free source string */ --- 381,387 ---- /* Now loop through the file and do the magic quotes thing if needed */ memset(buf,0,8191); while((int)gzgets(zp, buf, 8191)) { ! if (ZLIB_INI(magic_quotes_runtime)) { int len; slashed = _php3_addslashes(buf,0,&len,0); /* 0 = don't free source string */ *************** *** 487,493 **** efree(buf); RETVAL_FALSE; } else { ! if (php3_ini.magic_quotes_runtime) { return_value->value.str.val = _php3_addslashes(buf,0,&return_value->value.str.len,1); } else { return_value->value.str.val = buf; --- 513,519 ---- efree(buf); RETVAL_FALSE; } else { ! if (ZLIB_INI(magic_quotes_runtime)) { return_value->value.str.val = _php3_addslashes(buf,0,&return_value->value.str.len,1); } else { return_value->value.str.val = buf; *************** *** 682,688 **** } /* strip slashes only if the length wasn't specified explicitly */ ! if (!arg3 && php3_ini.magic_quotes_runtime) { _php3_stripslashes(arg2->value.str.val,&num_bytes); } --- 708,714 ---- } /* strip slashes only if the length wasn't specified explicitly */ ! if (!arg3 && ZLIB_INI(magic_quotes_runtime)) { _php3_stripslashes(arg2->value.str.val,&num_bytes); } *************** *** 862,868 **** return_value->value.str.len = gzread(zp, return_value->value.str.val, len); return_value->value.str.val[return_value->value.str.len] = 0; ! if (php3_ini.magic_quotes_runtime) { return_value->value.str.val = _php3_addslashes(return_value->value.str.val,return_value->value.str.len,&return_value->value.str.len,1); } return_value->type = IS_STRING; --- 888,894 ---- return_value->value.str.len = gzread(zp, return_value->value.str.val, len); return_value->value.str.val[return_value->value.str.len] = 0; ! if (ZLIB_INI(magic_quotes_runtime)) { return_value->value.str.val = _php3_addslashes(return_value->value.str.val,return_value->value.str.len,&return_value->value.str.len,1); } return_value->type = IS_STRING; Index: php31/ext/zlib/zlib.dsp diff -c php31/ext/zlib/zlib.dsp:2.0 php31/ext/zlib/zlib.dsp:2.1 *** php31/ext/zlib/zlib.dsp:2.0 Fri Jul 3 09:16:19 1998 --- php31/ext/zlib/zlib.dsp Sun Aug 30 15:27:42 1998 *************** *** 37,48 **** # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "module_Release" ! # PROP Intermediate_Dir "module_Release" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MT /W3 /GX /O2 /I "\src\include" /I "\src\phpcvs\php3" /D "NDEBUG" /D "MSVC5" /D "COMPILE_DL" /D "THREAD_SAFE" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" --- 37,48 ---- # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "C:\php31" ! # PROP Intermediate_Dir "release" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MT /W3 /GX /O2 /I "\src\include" /I "./" /I "../../" /I "../../main" /D "HAVE_ZLIB" /D "PHP_31" /D "NDEBUG" /D "MSVC5" /D "COMPILE_DL" /D "THREAD_SAFE" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" *************** *** 52,58 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 zlibstat.lib php.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"\src\lib" /libpath:"\src\phpcvs\php3\cgi_release" !ELSEIF "$(CFG)" == "zlib - Win32 Debug" --- 52,58 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 ! # ADD LINK32 zlib.lib phpsapi_core.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"C:\php31/php3_zlib.dll" /libpath:"\src\lib" /libpath:"c:\php31" !ELSEIF "$(CFG)" == "zlib - Win32 Debug" *************** *** 63,74 **** # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "module_Debug" ! # PROP Intermediate_Dir "module_Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "\src\include" /I "\src\phpcvs\php3" /D "DEBUG" /D "_DEBUG" /D "MSVC5" /D "COMPILE_DL" /D "THREAD_SAFE" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" --- 63,74 ---- # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "c:\php31" ! # PROP Intermediate_Dir "debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ! # ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "\src\include" /I "./" /I "../../" /I "../../main" /D "HAVE_ZLIB" /D "PHP_31" /D "DEBUG" /D "_DEBUG" /D "MSVC5" /D "COMPILE_DL" /D "THREAD_SAFE" /D "WIN32" /D "_WINDOWS" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" *************** *** 78,84 **** # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 php.lib zlibstat.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"\usr\src\lib" /libpath:"\usr\src\phpcvs\php3\cgi_debug" !ENDIF --- 78,84 ---- # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 phpsapi_core.lib zlib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"c:\php31/php3_zlib.dll" /pdbtype:sept /libpath:"\src\lib" /libpath:"c:\php31" !ENDIF *************** *** 88,94 **** # Name "zlib - Win32 Debug" # Begin Source File ! SOURCE=.\functions\zlib.c # End Source File # End Target # End Project --- 88,98 ---- # Name "zlib - Win32 Debug" # Begin Source File ! SOURCE=.\php3_zlib.h ! # End Source File ! # Begin Source File ! ! SOURCE=.\zlib.c # End Source File # End Target # End Project -- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net For help: php-dev-help@lists.php.net

« previous php.dev (#675) next »