]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: h1-htx: Don't flag response as bodyless when a tunnel is established
authorChristopher Faulet <cfaulet@haproxy.com>
Mon, 9 Sep 2024 16:16:49 +0000 (18:16 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Mon, 9 Sep 2024 17:01:47 +0000 (19:01 +0200)
This reverts commit 225a4d02e1f6a12c0b4f3584949fad3339d71708.

When a 200-OK response is replied to a CONNECT request or a
101-Switching-protocol, a tunnel is considered as established between the
client and the server. However, we must not declare the reponse as
bodyless. Of course, there is no payload, but tunneled data are expected.

Because of this bug, the zero-copy forwarding is disabled on the server
side.

This patch must be backported as far as 2.9.

src/h1_htx.c

index 0f76cea8d4280fab6f22084adbe374fe6a2c8f5a..c5b9dd81d835d787ee97daee65300a010e2be24d 100644 (file)
@@ -293,7 +293,6 @@ static int h1_postparse_res_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct htx
                h1m->flags &= ~(H1_MF_CLEN|H1_MF_CHNK);
                h1m->flags |= H1_MF_XFER_LEN;
                h1m->curr_len = h1m->body_len = 0;
-               flags |= HTX_SL_F_BODYLESS_RESP;
        }
        else if ((h1m->flags & H1_MF_METH_HEAD) || (code >= 100 && code < 200) ||
                 (code == 204) || (code == 304)) {