BUG/MINOR: http-comp: Preserve HTTP_MSGF_COMPRESSIONG flag on the response
This flag is set on the response when its payload is compressed by HAProxy.
It must be preserved because it may be used when the log message is emitted.
When the compression filter was refactored to support the HTX, an
optimization was added to not perform extra proessing on the trailers.
HTTP_MSGF_COMPRESSIONG flag is removed when the last data block is
compressed. It is not required, it is just an optimization and unfortunately
a bug. This optimization must be removed to preserve the flag.
This patch must be backported as far as 2.0. On the HTX is affected.
(cherry picked from commit acfd71b97aecea49bc3e3fad18d662960b750970)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/flt_http_comp.c b/src/flt_http_comp.c
index b6aeb2b..22af46b 100644
--- a/src/flt_http_comp.c
+++ b/src/flt_http_comp.c
@@ -183,9 +183,6 @@
while (next && htx_get_blk_type(next) == HTX_BLK_UNUSED)
next = htx_get_next_blk(htx, blk);
- if (!(msg->flags & HTTP_MSGF_COMPRESSING))
- goto consume;
-
if (htx_compression_buffer_init(htx, &trash) < 0) {
msg->chn->flags |= CF_WAKE_WRITE;
goto end;
@@ -215,8 +212,6 @@
len -= ret;
consumed += ret;
to_forward += b_data(&trash);
- if (last)
- msg->flags &= ~HTTP_MSGF_COMPRESSING;
break;
case HTX_BLK_TLR:
@@ -232,7 +227,6 @@
goto error;
to_forward += b_data(&trash);
}
- msg->flags &= ~HTTP_MSGF_COMPRESSING;
/* fall through */
default: