BUG/MINOR: httpclient: don't send an empty body
authorWilliam Lallemand <wlallemand@haproxy.org>
Fri, 14 Jan 2022 13:08:34 +0000 (14:08 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 26 Jan 2022 03:34:54 +0000 (04:34 +0100)
Forbid the httpclient to send an empty chunked client when there is no
data to send. It does happen when doing a simple GET too.

Must be backported in 2.5.

(cherry picked from commit e1e045f4d71f85462414d048449c9307886f7c36)
Signed-off-by: Willy Tarreau <w@1wt.eu>

src/http_client.c

index 34e27c6..2fb1b48 100644 (file)
@@ -278,6 +278,10 @@ int httpclient_req_gen(struct httpclient *hc, const struct ist url, enum http_me
        htx = htx_from_buf(&hc->req.buf);
        if (!htx)
                goto error;
+
+       if (!hc->ops.req_payload && !isttest(payload))
+               flags |= HTX_SL_F_BODYLESS;
+
        sl = htx_add_stline(htx, HTX_BLK_REQ_SL, flags, meth_ist, url, vsn);
        if (!sl) {
                goto error;