Browse Source

Fix for Redhat libc 2.1 and dynamic loading in zlib module.

Adapted zlib module to new PHP_Mxxx macros.
experimetnal/RETURN_REF_PATCH
Stefan Roehrich 27 years ago
parent
commit
5d10addd01
  1. 2
      ChangeLog
  2. 1
      MODULES_STATUS
  3. 6
      ext/zlib/php3_zlib.h
  4. 53
      ext/zlib/zlib.c

2
ChangeLog

@ -2,6 +2,8 @@ PHP 4.0 CHANGE LOG ChangeLog
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
??? ?? 1999, Version 4.0 Beta 2
- Imported PHP3 fixes for problem with PHP as a dynamic module and Redhat
libc2.1 in zlib module (Stefan)
- Fixed sybase_fetch_object() (Zeev)
- Made the IMAP module work with PHP 4.0 (Zeev)
- Fixed a problem with include()/require() of URLs (Sascha, Zeev)

1
MODULES_STATUS

@ -15,3 +15,4 @@ oci8 Working (but no blob-support yet)
oracle Working
iptc Working
informix Working
zlib Working

6
ext/zlib/php3_zlib.h

@ -38,9 +38,9 @@
extern php3_module_entry php3_zlib_module_entry;
#define zlib_module_ptr &php3_zlib_module_entry
extern int php3_minit_zlib(INIT_FUNC_ARGS);
extern int php3_mshutdown_zlib(SHUTDOWN_FUNC_ARGS);
void php3_info_zlib(ZEND_MODULE_INFO_FUNC_ARGS);
extern PHP_MINIT_FUNCTION(zlib);
extern PHP_MSHUTDOWN_FUNCTION(zlib);
PHP_MINFO_FUNCTION(zlib);
PHP_FUNCTION(gzopen);
PHP_FUNCTION(gzclose);
PHP_FUNCTION(gzeof);

53
ext/zlib/zlib.c

@ -106,33 +106,44 @@ void *zlib_mutex;
#endif
function_entry php3_zlib_functions[] = {
{"readgzfile", php3_readgzfile, NULL},
{"gzrewind", php3_gzrewind, NULL},
{"gzclose", php3_gzclose, NULL},
{"gzeof", php3_gzeof, NULL},
{"gzgetc", php3_gzgetc, NULL},
{"gzgets", php3_gzgets, NULL},
{"gzgetss", php3_gzgetss, NULL},
{"gzread", php3_gzread, NULL},
{"gzopen", php3_gzopen, NULL},
{"gzpassthru", php3_gzpassthru, NULL},
{"gzseek", php3_gzseek, NULL},
{"gztell", php3_gztell, NULL},
{"gzwrite", php3_gzwrite, NULL},
{"gzputs", php3_gzwrite, NULL},
{"gzfile", php3_gzfile, NULL},
PHP_FE(readgzfile, NULL)
PHP_FE(gzrewind, NULL)
PHP_FE(gzclose, NULL)
PHP_FE(gzeof, NULL)
PHP_FE(gzgetc, NULL)
PHP_FE(gzgets, NULL)
PHP_FE(gzgetss, NULL)
PHP_FE(gzread, NULL)
PHP_FE(gzopen, NULL)
PHP_FE(gzpassthru, NULL)
PHP_FE(gzseek, NULL)
PHP_FE(gztell, NULL)
PHP_FE(gzwrite, NULL)
PHP_FALIAS(gzputs, gzwrite, NULL)
PHP_FE(gzfile, NULL)
{NULL, NULL, NULL}
};
php3_module_entry php3_zlib_module_entry = {
"zlib", php3_zlib_functions, php3_minit_zlib, php3_mshutdown_zlib, NULL, NULL, php3_info_zlib, STANDARD_MODULE_PROPERTIES
"zlib",
php3_zlib_functions,
PHP_MINIT(zlib),
PHP_MSHUTDOWN(zlib),
NULL,
NULL,
PHP_MINFO(zlib),
STANDARD_MODULE_PROPERTIES
};
#if defined(COMPILE_DL)
DLEXPORT php3_module_entry *get_module(void) { return &php3_zlib_module_entry; }
#endif
int php3_minit_zlib(INIT_FUNC_ARGS)
static void php3i_destructor_gzclose(gzFile *zp) {
(void)gzclose(zp);
}
PHP_MINIT_FUNCTION(zlib)
{
#ifdef THREAD_SAFE
zlib_global_struct *zlib_globals;
@ -152,11 +163,12 @@ int php3_minit_zlib(INIT_FUNC_ARGS)
return FAILURE;
}
#endif
ZLIB_GLOBAL(le_zp) = register_list_destructors(gzclose,NULL);
ZLIB_GLOBAL(le_zp) = register_list_destructors(php3i_destructor_gzclose,NULL);
return SUCCESS;
}
int php3_mshutdown_zlib(SHUTDOWN_FUNC_ARGS){
PHP_MSHUTDOWN_FUNCTION(zlib)
{
#if defined(THREAD_SAFE)
ZLIB_TLS_VARS;
PHP3_TLS_THREAD_FREE(zlib_globals);
@ -173,7 +185,7 @@ int php3_mshutdown_zlib(SHUTDOWN_FUNC_ARGS){
return SUCCESS;
}
void php3_info_zlib(ZEND_MODULE_INFO_FUNC_ARGS)
PHP_MINFO_FUNCTION(zlib)
{
PUTS("Zlib support active (compiled with ");
PUTS(ZLIB_VERSION);
@ -895,5 +907,6 @@ PHP_FUNCTION(gzread)
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
*/
Loading…
Cancel
Save