X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_filter_api.c;h=23b71190acebb730a3d5002b734d4f108299e9ed;hp=8d138b9c748e214807cd15dd13abeeb5716cd641;hb=ad5f896b03adaa073134a00108a9cdf00720673a;hpb=31092c29dba06404d2f0d856d5a89f0b28be6f0b diff --git a/http_filter_api.c b/http_filter_api.c index 8d138b9..23b7119 100644 --- a/http_filter_api.c +++ b/http_filter_api.c @@ -6,7 +6,7 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2006, Michael Wallner | + | Copyright (c) 2004-2010, Michael Wallner | +--------------------------------------------------------------------+ */ @@ -105,7 +105,7 @@ static HTTP_FILTER_FUNCTION(chunked_decode) *bytes_consumed += ptr->buflen; } - if ((size_t) -1 == phpstr_append(PHPSTR(buffer), ptr->buf, ptr->buflen)) { + if (PHPSTR_NOMEM == phpstr_append(PHPSTR(buffer), ptr->buf, ptr->buflen)) { return PSFS_ERR_FATAL; } @@ -477,7 +477,7 @@ static php_stream_filter *http_filter_create(const char *name, zval *params, int } else if (!strcasecmp(name, "http.inflate")) { - int flags = HTTP_ENCODING_STREAM_FLUSH_SYNC | (p ? HTTP_ENCODING_STREAM_PERSISTENT : 0); + int flags = p ? HTTP_ENCODING_STREAM_PERSISTENT : 0; HTTP_FILTER_BUFFER(inflate) *b = NULL; if ((b = http_encoding_inflate_stream_init(NULL, flags))) { @@ -488,12 +488,11 @@ static php_stream_filter *http_filter_create(const char *name, zval *params, int } else if (!strcasecmp(name, "http.deflate")) { - int flags = HTTP_ENCODING_STREAM_FLUSH_SYNC | (p ? HTTP_ENCODING_STREAM_PERSISTENT : 0); + int flags = p ? HTTP_ENCODING_STREAM_PERSISTENT : 0; HTTP_FILTER_BUFFER(deflate) *b = NULL; if (params) { - switch (Z_TYPE_P(params)) - { + switch (Z_TYPE_P(params)) { case IS_ARRAY: case IS_OBJECT: if (SUCCESS != zend_hash_find(HASH_OF(params), "flags", sizeof("flags"), (void *) &tmp)) { @@ -501,11 +500,10 @@ static php_stream_filter *http_filter_create(const char *name, zval *params, int } default: { - zval *orig = *tmp; + zval *num = http_zsep(IS_LONG, *tmp); - convert_to_long_ex(tmp); - flags |= (Z_LVAL_PP(tmp) & 0x00ffffff); - if (orig != *tmp) zval_ptr_dtor(tmp); + flags |= (Z_LVAL_P(num) & 0x0fffffff); + zval_ptr_dtor(&num); } } }