3636
3737#define PHP_STREAM_FILTER_SEEKABLE_NEVER 0
3838#define PHP_STREAM_FILTER_SEEKABLE_START 1
39- #define PHP_STREAM_FILTER_SEEKABLE_ALWAYS 2
39+ #define PHP_STREAM_FILTER_SEEKABLE_CHECK 2
40+ #define PHP_STREAM_FILTER_SEEKABLE_ALWAYS 3
4041#define PHP_STREAM_FILTER_SEEKABLE_MASK 3
4142
4243typedef struct _php_stream_bucket php_stream_bucket ;
@@ -93,31 +94,18 @@ typedef struct _php_stream_filter_ops {
9394 int flags
9495 );
9596
96- void (* dtor )(php_stream_filter * thisfilter );
97-
98- const char * label ;
99-
100- } php_stream_filter_ops ;
101-
102- typedef struct _php_stream_filter_extra_ops {
103- /* it should indicate whether seeking is supported and possibly modify internal state */
10497 zend_result (* seek )(
10598 php_stream * stream ,
10699 php_stream_filter * thisfilter ,
107100 zend_off_t offset ,
108101 int whence
109102 );
110103
111- /* this is a generic interface for possible further extensions */
112- zend_result (* set_option )(
113- php_stream * stream ,
114- php_stream_filter * thisfilter ,
115- int option ,
116- void * value ,
117- size_t size
118- );
104+ void (* dtor )(php_stream_filter * thisfilter );
119105
120- } php_stream_filter_extra_ops ;
106+ const char * label ;
107+
108+ } php_stream_filter_ops ;
121109
122110typedef struct _php_stream_filter_chain {
123111 php_stream_filter * head , * tail ;
@@ -128,7 +116,6 @@ typedef struct _php_stream_filter_chain {
128116
129117struct _php_stream_filter {
130118 const php_stream_filter_ops * fops ;
131- const php_stream_filter_extra_ops * feops ;
132119 zval abstract ; /* for use by filter implementation */
133120 php_stream_filter * next ;
134121 php_stream_filter * prev ;
@@ -154,27 +141,27 @@ PHPAPI zend_result php_stream_filter_append_ex(php_stream_filter_chain *chain, p
154141PHPAPI zend_result _php_stream_filter_flush (php_stream_filter * filter , bool finish );
155142PHPAPI php_stream_filter * php_stream_filter_remove (php_stream_filter * filter , bool call_dtor );
156143PHPAPI void php_stream_filter_free (php_stream_filter * filter );
157- PHPAPI php_stream_filter * _php_stream_filter_alloc (const php_stream_filter_ops * fops , void * abstract , uint8_t persistent STREAMS_DC );
158- PHPAPI php_stream_filter * _php_stream_filter_alloc_ex ( const php_stream_filter_ops * fops ,
159- const php_stream_filter_extra_ops * feops , void * abstract , uint8_t persistent , uint16_t flags STREAMS_DC );
144+ PHPAPI php_stream_filter * _php_stream_filter_alloc (const php_stream_filter_ops * fops ,
145+ void * abstract , bool persistent , uint32_t flags STREAMS_DC );
146+
160147END_EXTERN_C ()
161- #define php_stream_filter_alloc (fops , thisptr , persistent ) _php_stream_filter_alloc((fops), (thisptr), (persistent) STREAMS_CC)
162- #define php_stream_filter_alloc_ex ( fops , feops , thisptr , persistent ) \
163- _php_stream_filter_alloc_ex(( fops), (feops), ( thisptr), ( persistent) STREAMS_CC)
164- #define php_stream_filter_alloc_rel ( fops , thisptr , persistent ) _php_stream_filter_alloc((fops), (thisptr), (persistent) STREAMS_REL_CC)
148+ #define php_stream_filter_alloc (fops , thisptr , persistent , flags ) \
149+ _php_stream_filter_alloc(( fops), ( thisptr), ( persistent), (flags) STREAMS_CC)
150+ #define php_stream_filter_alloc_rel ( fops , thisptr , persistent , flags ) \
151+ _php_stream_filter_alloc((fops), (thisptr), (persistent), (flags ) STREAMS_REL_CC)
165152#define php_stream_filter_prepend (chain , filter ) _php_stream_filter_prepend((chain), (filter))
166153#define php_stream_filter_append (chain , filter ) _php_stream_filter_append((chain), (filter))
167154#define php_stream_filter_flush (filter , finish ) _php_stream_filter_flush((filter), (finish))
168155
169156#define php_stream_is_filtered (stream ) ((stream)->readfilters.head || (stream)->writefilters.head)
170157
171158typedef struct _php_stream_filter_factory {
172- php_stream_filter * (* create_filter )(const char * filtername , zval * filterparams , uint8_t persistent );
159+ php_stream_filter * (* create_filter )(const char * filtername , zval * filterparams , bool persistent );
173160} php_stream_filter_factory ;
174161
175162BEGIN_EXTERN_C ()
176163PHPAPI zend_result php_stream_filter_register_factory (const char * filterpattern , const php_stream_filter_factory * factory );
177164PHPAPI zend_result php_stream_filter_unregister_factory (const char * filterpattern );
178165PHPAPI zend_result php_stream_filter_register_factory_volatile (zend_string * filterpattern , const php_stream_filter_factory * factory );
179- PHPAPI php_stream_filter * php_stream_filter_create (const char * filtername , zval * filterparams , uint8_t persistent );
166+ PHPAPI php_stream_filter * php_stream_filter_create (const char * filtername , zval * filterparams , bool persistent );
180167END_EXTERN_C ()
0 commit comments