X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_encoding_api.c;h=a31b5b79772cc0533c2af23274674cdb158db89d;hp=f57add91cff00ce9c5a1ae6895db82961078e5d9;hb=f0bcc141e62c022101d8d19c1d73e7b9ae41d0e9;hpb=52afbd9e2f860621ac40405d5c2298516493b121 diff --git a/http_encoding_api.c b/http_encoding_api.c index f57add9..a31b5b7 100644 --- a/http_encoding_api.c +++ b/http_encoding_api.c @@ -392,7 +392,7 @@ PHP_HTTP_API STATUS _http_encoding_deflate_stream_update(http_encoding_stream *s case Z_OK: case Z_STREAM_END: /* cut processed chunk off the buffer */ - phpstr_cut(PHPSTR(s->stream.opaque), 0, data_len - s->stream.avail_in); + phpstr_cut(PHPSTR(s->stream.opaque), 0, PHPSTR_LEN(s->stream.opaque) - s->stream.avail_in); /* size buffer down to actual size */ *encoded_len -= s->stream.avail_out; @@ -436,7 +436,7 @@ retry_raw_inflate: case Z_OK: case Z_STREAM_END: /* cut off */ - phpstr_cut(PHPSTR(s->stream.opaque), 0, data_len - s->stream.avail_in); + phpstr_cut(PHPSTR(s->stream.opaque), 0, PHPSTR_LEN(s->stream.opaque) - s->stream.avail_in); /* size down */ *decoded_len -= s->stream.avail_out; @@ -494,31 +494,9 @@ PHP_HTTP_API STATUS _http_encoding_deflate_stream_flush(http_encoding_stream *s, PHP_HTTP_API STATUS _http_encoding_inflate_stream_flush(http_encoding_stream *s, char **decoded, size_t *decoded_len ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC TSRMLS_DC) { - int status; - - *decoded_len = 0x800; - *decoded = emalloc_rel(*decoded_len); - - s->stream.avail_in = 0; - s->stream.next_in = NULL; - s->stream.avail_out = *decoded_len; - s->stream.next_out = (Bytef *) *decoded; - - switch (status = inflate(&s->stream, Z_SYNC_FLUSH)) - { - case Z_OK: - case Z_STREAM_END: - *decoded_len = 0x800 - s->stream.avail_out; - *decoded = erealloc_rel(*decoded, *decoded_len + 1); - (*decoded)[*decoded_len] = '\0'; - return SUCCESS; - break; - } - - STR_SET(*decoded, NULL); - *decoded_len = 0; - http_error_ex(HE_WARNING, HTTP_E_ENCODING, "Failed to flush inflate stream: %s", zError(status)); - return FAILURE; + /* noop */ + *decoded = estrndup("", *decoded_len = 0); + return SUCCESS; } PHP_HTTP_API STATUS _http_encoding_deflate_stream_finish(http_encoding_stream *s, char **encoded, size_t *encoded_len ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC TSRMLS_DC)