summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/basic_functions.c16
-rw-r--r--ext/standard/file.c18
-rw-r--r--ext/zlib/zlib.c2
-rw-r--r--main/main.c5
-rwxr-xr-xmain/php_streams.h8
-rwxr-xr-xmain/streams.c22
6 files changed, 40 insertions, 31 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index faec631bfb..dee722ab59 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -1005,14 +1005,14 @@ PHP_MINIT_FUNCTION(basic)
if (PG(allow_url_fopen)) {
- if (FAILURE == php_register_url_stream_wrapper("http", &php_stream_http_wrapper))
+ if (FAILURE == php_register_url_stream_wrapper("http", &php_stream_http_wrapper TSRMLS_CC))
return FAILURE;
- if (FAILURE == php_register_url_stream_wrapper("php", &php_stream_php_wrapper))
+ if (FAILURE == php_register_url_stream_wrapper("php", &php_stream_php_wrapper TSRMLS_CC))
return FAILURE;
- if (FAILURE == php_register_url_stream_wrapper("ftp", &php_stream_ftp_wrapper))
+ if (FAILURE == php_register_url_stream_wrapper("ftp", &php_stream_ftp_wrapper TSRMLS_CC))
return FAILURE;
# if HAVE_OPENSSL_EXT
- if (FAILURE == php_register_url_stream_wrapper("https", &php_stream_http_wrapper))
+ if (FAILURE == php_register_url_stream_wrapper("https", &php_stream_http_wrapper TSRMLS_CC))
return FAILURE;
# endif
}
@@ -1030,11 +1030,11 @@ PHP_MSHUTDOWN_FUNCTION(basic)
#endif
if (PG(allow_url_fopen)) {
- php_unregister_url_stream_wrapper("http");
- php_unregister_url_stream_wrapper("ftp");
- php_unregister_url_stream_wrapper("php");
+ php_unregister_url_stream_wrapper("http" TSRMLS_CC);
+ php_unregister_url_stream_wrapper("ftp" TSRMLS_CC);
+ php_unregister_url_stream_wrapper("php" TSRMLS_CC);
# if HAVE_OPENSSL_EXT
- php_unregister_url_stream_wrapper("https");
+ php_unregister_url_stream_wrapper("https" TSRMLS_CC);
# endif
}
diff --git a/ext/standard/file.c b/ext/standard/file.c
index 8c4f727c33..2036df7e05 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -238,10 +238,14 @@ PHP_FUNCTION(get_meta_tags)
return;
}
+ php_stream_open_wrapper(filename, "rb", 0, NULL);
+
md.stream = php_stream_open_wrapper(filename, "rb",
use_include_path | ENFORCE_SAFE_MODE | REPORT_ERRORS,
- NULL TSRMLS_CC);
+ NULL);
+
+
if (!md.stream) {
RETURN_FALSE;
}
@@ -385,7 +389,7 @@ PHP_FUNCTION(file_get_contents)
stream = php_stream_open_wrapper(filename, "rb",
use_include_path | ENFORCE_SAFE_MODE | REPORT_ERRORS,
- NULL TSRMLS_CC);
+ NULL);
if (!stream) {
RETURN_FALSE;
}
@@ -432,7 +436,7 @@ PHP_FUNCTION(file)
stream = php_stream_open_wrapper(filename, "rb",
use_include_path | ENFORCE_SAFE_MODE | REPORT_ERRORS,
- NULL TSRMLS_CC);
+ NULL);
if (!stream) {
RETURN_FALSE;
}
@@ -583,7 +587,7 @@ PHP_NAMED_FUNCTION(php_if_fopen)
stream = php_stream_open_wrapper(Z_STRVAL_PP(arg1), Z_STRVAL_PP(arg2),
use_include_path | ENFORCE_SAFE_MODE | REPORT_ERRORS,
- NULL TSRMLS_CC);
+ NULL);
if (stream == NULL) {
RETURN_FALSE;
}
@@ -1400,7 +1404,7 @@ PHP_FUNCTION(readfile)
stream = php_stream_open_wrapper(Z_STRVAL_PP(arg1), "rb",
use_include_path | ENFORCE_SAFE_MODE | REPORT_ERRORS,
- NULL TSRMLS_CC);
+ NULL);
if (stream) {
size = php_passthru_stream(stream TSRMLS_CC);
php_stream_close(stream);
@@ -1694,11 +1698,11 @@ PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC)
srcstream = php_stream_open_wrapper(src, "rb",
ENFORCE_SAFE_MODE | REPORT_ERRORS,
- NULL TSRMLS_CC);
+ NULL);
deststream = php_stream_open_wrapper(dest, "wb",
ENFORCE_SAFE_MODE | REPORT_ERRORS,
- NULL TSRMLS_CC);
+ NULL);
if (srcstream && deststream)
ret = php_stream_copy_to_stream(srcstream, deststream, PHP_STREAM_COPY_ALL) == 0 ? FAILURE : SUCCESS;
diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c
index 35ef2a179d..881a5d0a0a 100644
--- a/ext/zlib/zlib.c
+++ b/ext/zlib/zlib.c
@@ -188,7 +188,7 @@ PHP_MINIT_FUNCTION(zlib)
le_zp = zend_register_list_destructors_ex(phpi_destructor_gzclose, NULL, "zlib", module_number);
if(PG(allow_url_fopen)) {
- php_register_url_stream_wrapper("zlib", &php_stream_gzip_wrapper);
+ php_register_url_stream_wrapper("zlib", &php_stream_gzip_wrapper TSRMLS_CC);
}
REGISTER_LONG_CONSTANT("FORCE_GZIP", CODING_GZIP, CONST_CS | CONST_PERSISTENT);
diff --git a/main/main.c b/main/main.c
index 5e05ac0018..85f68371b6 100644
--- a/main/main.c
+++ b/main/main.c
@@ -565,6 +565,7 @@ static FILE *php_fopen_wrapper_for_zend(const char *filename, char **opened_path
{
FILE *retval = NULL;
php_stream *stream;
+ TSRMLS_FETCH();
stream = php_stream_open_wrapper((char *)filename, "rb", USE_PATH|IGNORE_URL_WIN|REPORT_ERRORS, opened_path);
if (stream) {
@@ -951,7 +952,7 @@ int php_module_startup(sapi_module_struct *sf)
/* initialize stream wrappers registry
* (this uses configuration parameters from php.ini)
*/
- if (php_init_stream_wrappers() == FAILURE) {
+ if (php_init_stream_wrappers(TSRMLS_C) == FAILURE) {
php_printf("PHP: Unable to initialize stream url wrappers.\n");
return FAILURE;
}
@@ -1056,7 +1057,7 @@ void php_module_shutdown(TSRMLS_D)
zend_shutdown(TSRMLS_C);
- php_shutdown_stream_wrappers();
+ php_shutdown_stream_wrappers(TSRMLS_C);
php_shutdown_info_logos();
UNREGISTER_INI_ENTRIES();
diff --git a/main/php_streams.h b/main/php_streams.h
index 7141da21a1..9f2e4602e5 100755
--- a/main/php_streams.h
+++ b/main/php_streams.h
@@ -227,10 +227,10 @@ PHPAPI int php_stream_cast(php_stream *stream, int castas, void **ret, int show_
# define IGNORE_URL_WIN 0
#endif
-int php_init_stream_wrappers(void);
-int php_shutdown_stream_wrappers(void);
-PHPAPI int php_register_url_stream_wrapper(char *protocol, php_stream_wrapper *wrapper);
-PHPAPI int php_unregister_url_stream_wrapper(char *protocol);
+int php_init_stream_wrappers(TSRMLS_D);
+int php_shutdown_stream_wrappers(TSRMLS_D);
+PHPAPI int php_register_url_stream_wrapper(char *protocol, php_stream_wrapper *wrapper TSRMLS_DC);
+PHPAPI int php_unregister_url_stream_wrapper(char *protocol TSRMLS_DC);
PHPAPI php_stream *_php_stream_open_wrapper(char *path, char *mode, int options, char **opened_path STREAMS_DC);
#define php_stream_open_wrapper(path, mode, options, opened) _php_stream_open_wrapper((path), (mode), (options), (opened) STREAMS_CC)
diff --git a/main/streams.c b/main/streams.c
index 20cf6c0db5..6f5d8f1149 100755
--- a/main/streams.c
+++ b/main/streams.c
@@ -881,30 +881,35 @@ exit_success:
} /* }}} */
-int php_init_stream_wrappers(void)
+int php_init_stream_wrappers(TSRMLS_D)
{
- if (PG(allow_url_fopen))
+ if (PG(allow_url_fopen)) {
return zend_hash_init(&url_stream_wrappers_hash, 0, NULL, NULL, 1);
+ }
return SUCCESS;
}
-int php_shutdown_stream_wrappers(void)
+int php_shutdown_stream_wrappers(TSRMLS_D)
{
- if (PG(allow_url_fopen))
+ if (PG(allow_url_fopen)) {
zend_hash_destroy(&url_stream_wrappers_hash);
+ }
return SUCCESS;
}
-PHPAPI int php_register_url_stream_wrapper(char *protocol, php_stream_wrapper *wrapper)
+PHPAPI int php_register_url_stream_wrapper(char *protocol, php_stream_wrapper *wrapper TSRMLS_DC)
{
- if (PG(allow_url_fopen))
+ if (PG(allow_url_fopen)) {
return zend_hash_add(&url_stream_wrappers_hash, protocol, strlen(protocol), wrapper, sizeof(*wrapper), NULL);
+ }
return FAILURE;
}
-PHPAPI int php_unregister_url_stream_wrapper(char *protocol)
+
+PHPAPI int php_unregister_url_stream_wrapper(char *protocol TSRMLS_DC)
{
- if (PG(allow_url_fopen))
+ if (PG(allow_url_fopen)) {
return zend_hash_del(&url_stream_wrappers_hash, protocol, strlen(protocol));
+ }
return SUCCESS;
}
@@ -953,7 +958,6 @@ static php_stream *php_stream_open_url(char *path, char *mode, int options, char
PHPAPI php_stream *_php_stream_open_wrapper(char *path, char *mode, int options, char **opened_path STREAMS_DC)
{
php_stream *stream = NULL;
- TSRMLS_FETCH();
if (opened_path)
*opened_path = NULL;