mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +02:00
MEDIUM: httpclient: add a Content-Length when the payload is known
This introduce a change of behavior in the httpclient API. When generating a request with a payload buffer, the size of the buffer payload is known and does not need to be streamed in chunks. This patch force to sends payload buffer using a Content-Length header in the request, however the behavior does not change if a callback is still used instead of a buffer.
This commit is contained in:
parent
5da4da0bb6
commit
f07f0ee21c
@ -136,13 +136,20 @@ int httpclient_req_gen(struct httpclient *hc, const struct ist url, enum http_me
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (isttest(payload) && istlen(payload)) {
|
||||
/* add the Content-Length of the payload when not using the callback */
|
||||
|
||||
if (!htx_add_header(htx, ist("Content-Length"), ist(ultoa(istlen(payload)))))
|
||||
goto error;
|
||||
|
||||
}
|
||||
|
||||
if (!htx_add_endof(htx, HTX_BLK_EOH))
|
||||
goto error;
|
||||
|
||||
if (isttest(payload) && istlen(payload)) {
|
||||
/* add the payload if it can feat in the buffer, no need to set
|
||||
* the Content-Length, the data will be sent chunked */
|
||||
/* add the payload if it can feat in the buffer, Content-Length was added before */
|
||||
|
||||
if (!htx_add_data_atonce(htx, payload))
|
||||
goto error;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user