diff options
author | Sara Golemon <pollita@php.net> | 2004-09-14 03:48:17 +0000 |
---|---|---|
committer | Sara Golemon <pollita@php.net> | 2004-09-14 03:48:17 +0000 |
commit | 34550382d89597552df369fe1d6318d32b5929cb (patch) | |
tree | 1e788daee0de5c28b2e81d6d23e851df346ecc4e /main/streams/streams.c | |
parent | 41c4fd66d96856cab3c39542486941e748706830 (diff) | |
download | php-git-34550382d89597552df369fe1d6318d32b5929cb.tar.gz |
Added stream_filter_remove() to cancel a stream filter.
Register filters as resources when
instantiated by stream_filter_(ap|pre)pend().
Export php_stream_filter_flush() internal function to wind buffered data
out of a particular filter until consumed by a later filter or sent to
stream->readbuffer or stream->ops->write()
Diffstat (limited to 'main/streams/streams.c')
-rwxr-xr-x | main/streams/streams.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/main/streams/streams.c b/main/streams/streams.c index bb2b137c32..6242afcf82 100755 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -38,6 +38,7 @@ static HashTable url_stream_wrappers_hash; static int le_stream = FAILURE; /* true global */ static int le_pstream = FAILURE; /* true global */ +static int le_stream_filter = FAILURE; /* true global */ PHPAPI int php_file_le_stream(void) { @@ -49,6 +50,11 @@ PHPAPI int php_file_le_pstream(void) return le_pstream; } +PHPAPI int php_file_le_stream_filter(void) +{ + return le_stream_filter; +} + PHPAPI HashTable *_php_stream_get_url_stream_wrappers_hash(TSRMLS_D) { return (FG(stream_wrappers) ? FG(stream_wrappers) : &url_stream_wrappers_hash); @@ -1370,6 +1376,9 @@ int php_init_stream_wrappers(int module_number TSRMLS_DC) le_stream = zend_register_list_destructors_ex(stream_resource_regular_dtor, NULL, "stream", module_number); le_pstream = zend_register_list_destructors_ex(NULL, stream_resource_persistent_dtor, "persistent stream", module_number); + /* Filters are cleaned up by the streams they're attached to */ + le_stream_filter = zend_register_list_destructors_ex(NULL, NULL, "stream filter", module_number); + return ( zend_hash_init(&url_stream_wrappers_hash, 0, NULL, NULL, 1) == SUCCESS && |