From acfd71b97aecea49bc3e3fad18d662960b750970 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 21 May 2021 09:49:20 +0200 Subject: [PATCH] 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. --- src/flt_http_comp.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/flt_http_comp.c b/src/flt_http_comp.c index b6aeb2b25b..22af46b8bf 100644 --- a/src/flt_http_comp.c +++ b/src/flt_http_comp.c @@ -183,9 +183,6 @@ comp_http_payload(struct stream *s, struct filter *filter, struct http_msg *msg, 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 @@ comp_http_payload(struct stream *s, struct filter *filter, struct http_msg *msg, 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 @@ comp_http_payload(struct stream *s, struct filter *filter, struct http_msg *msg, goto error; to_forward += b_data(&trash); } - msg->flags &= ~HTTP_MSGF_COMPRESSING; /* fall through */ default: -- 2.39.5