if (ptr->buflen) {
http_encoding_deflate_stream_update(buffer, ptr->buf, ptr->buflen, &encoded, &encoded_len);
if (encoded) {
- out_avail = 1;
- NEW_BUCKET(encoded, encoded_len);
+ if (encoded_len) {
+ out_avail = 1;
+ NEW_BUCKET(encoded, encoded_len);
+ }
efree(encoded);
}
}
http_encoding_deflate_stream_flush(buffer, &encoded, &encoded_len);
if (encoded) {
- out_avail = 1;
- NEW_BUCKET(encoded, encoded_len);
+ if (encoded_len) {
+ out_avail = 1;
+ NEW_BUCKET(encoded, encoded_len);
+ }
efree(encoded);
}
}
http_encoding_deflate_stream_finish(buffer, &encoded, &encoded_len);
if (encoded) {
- out_avail = 1;
- NEW_BUCKET(encoded, encoded_len);
+ if (encoded_len) {
+ out_avail = 1;
+ NEW_BUCKET(encoded, encoded_len);
+ }
efree(encoded);
}
}
if (ptr->buflen) {
http_encoding_inflate_stream_update(buffer, ptr->buf, ptr->buflen, &decoded, &decoded_len);
if (decoded) {
- out_avail = 1;
- NEW_BUCKET(decoded, decoded_len);
+ if (decoded_len) {
+ out_avail = 1;
+ NEW_BUCKET(decoded, decoded_len);
+ }
efree(decoded);
}
}
http_encoding_inflate_stream_flush(buffer, &decoded, &decoded_len);
if (decoded) {
- out_avail = 1;
- NEW_BUCKET(decoded, decoded_len);
+ if (decoded_len) {
+ out_avail = 1;
+ NEW_BUCKET(decoded, decoded_len);
+ }
efree(decoded);
}
}
http_encoding_inflate_stream_finish(buffer, &decoded, &decoded_len);
if (decoded) {
- out_avail = 1;
- NEW_BUCKET(decoded, decoded_len);
+ if (decoded_len) {
+ out_avail = 1;
+ NEW_BUCKET(decoded, decoded_len);
+ }
efree(decoded);
}
}
} else
if (!strcasecmp(name, "http.inflate")) {
- int flags = p ? HTTP_ENCODING_STREAM_PERSISTENT : 0;
+ int flags = HTTP_ENCODING_STREAM_FLUSH_SYNC | (p ? HTTP_ENCODING_STREAM_PERSISTENT : 0);
HTTP_FILTER_BUFFER(inflate) *b = NULL;
if ((b = http_encoding_inflate_stream_init(NULL, flags))) {
} else
if (!strcasecmp(name, "http.deflate")) {
- int flags = p ? HTTP_ENCODING_STREAM_PERSISTENT : 0;
+ int flags = HTTP_ENCODING_STREAM_FLUSH_SYNC | (p ? HTTP_ENCODING_STREAM_PERSISTENT : 0);
HTTP_FILTER_BUFFER(deflate) *b = NULL;
if (params) {
zval *orig = *tmp;
convert_to_long_ex(tmp);
- flags |= (Z_LVAL_PP(tmp) & 0x0fffffff);
+ flags |= (Z_LVAL_PP(tmp) & 0x00ffffff);
if (orig != *tmp) zval_ptr_dtor(tmp);
}
}