Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions ext/standard/filters.c
Original file line number Diff line number Diff line change
Expand Up @@ -1983,7 +1983,7 @@ static const php_stream_filter_ops chunked_filter_ops = {
"dechunk"
};

static php_stream_filter *chunked_filter_create(const char *filtername, zval *filterparams, bool persistent)
PHPAPI php_stream_filter *chunked_filter_create(const char *filtername, zval *filterparams, bool persistent)
{
const php_stream_filter_ops *fops = NULL;
php_chunked_filter_data *data;
Expand All @@ -2002,8 +2002,18 @@ static php_stream_filter *chunked_filter_create(const char *filtername, zval *fi
return php_stream_filter_alloc(fops, data, persistent, PSFS_SEEKABLE_START, PSFS_SEEKABLE_ALWAYS);
}

static php_stream_filter *chunked_filter_create_deprecated(const char *filtername, zval *filterparams, bool persistent)
{
if (strcasecmp(filtername, "dechunk")) {
return NULL;
}

php_error_docref(NULL, E_DEPRECATED, "The \"dechunk\" stream filter is deprecated");
return chunked_filter_create(filtername, filterparams, persistent);
}

static const php_stream_filter_factory chunked_filter_factory = {
chunked_filter_create
chunked_filter_create_deprecated
};
/* }}} */

Expand Down
2 changes: 1 addition & 1 deletion ext/standard/http_fopen_wrapper.c
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ static zend_string *php_stream_http_response_headers_parse(php_stream_wrapper *w
/* Prevent a memory leak in case there are more transfer-encoding headers. */
php_stream_filter_free(header_info->transfer_encoding);
}
header_info->transfer_encoding = php_stream_filter_create(
header_info->transfer_encoding = chunked_filter_create(
"dechunk", NULL, php_stream_is_persistent(stream));
if (header_info->transfer_encoding != NULL) {
/* Do not store transfer-encoding header. */
Expand Down
2 changes: 2 additions & 0 deletions ext/standard/php_standard.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,5 @@
#define phpext_standard_ptr basic_functions_module_ptr
PHP_MINIT_FUNCTION(standard_filters);
PHP_MSHUTDOWN_FUNCTION(standard_filters);

PHPAPI php_stream_filter *chunked_filter_create(const char *filtername, zval *filterparams, bool persistent);
Loading