]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MAJOR: http: compression still has defects on chunked responses
authorWilly Tarreau <w@1wt.eu>
Tue, 9 Apr 2013 06:13:58 +0000 (08:13 +0200)
committerWilly Tarreau <w@1wt.eu>
Sun, 14 Apr 2013 21:32:53 +0000 (23:32 +0200)
The compression state machine happens to start work it cannot undo if
there's no more data in the input buffer, and has trouble accounting
for it. Fixing it requires more than a few lines, as the confusion is
in part caused by the way the pointers to the various places in the
message are handled internally. So as a temporary fix, let's disable
compression on chunk-encoded responses. This will give us more time
to perform the required changes.

src/proto_http.c

index afb0db4a7024bbe754a6316f46889e36c08183d1..206701ec4aa9a454f92efc27896bb08c74e25694 100644 (file)
@@ -2073,6 +2073,10 @@ int select_compression_response_header(struct session *s, struct buffer *res)
        if (!(msg->flags & HTTP_MSGF_TE_CHNK) && msg->body_len == 0)
                goto fail;
 
+       /* TEMPORARY WORKAROUND: do not compress if response is chunked !!!!!! */
+       if (msg->flags & HTTP_MSGF_TE_CHNK)
+               goto fail;
+
        /* content is already compressed */
        ctx.idx = 0;
        if (http_find_header2("Content-Encoding", 16, res->p, &txn->hdr_idx, &ctx))