From: Christopher Faulet Date: Fri, 14 Oct 2022 12:57:04 +0000 (+0200) Subject: MINOR: httpclient/lua: Don't set req_payload callback if body is empty X-Git-Tag: v2.7-dev8~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=380ae9c3ff4919c9ea36d3d713427575c44fe4b8;p=thirdparty%2Fhaproxy.git MINOR: httpclient/lua: Don't set req_payload callback if body is empty The HTTPclient callback req_payload callback is set when a request payload must be streamed. In the lua, this callback is set when a body is passed as argument in one of httpclient functions (head/get/post/put/delete). However, there is no reason to set it if body string is empty. This patch is related to the issue #1898. It may be backported as far as 2.5. --- diff --git a/src/hlua.c b/src/hlua.c index ccdf538966..70be127f1a 100644 --- a/src/hlua.c +++ b/src/hlua.c @@ -7312,7 +7312,7 @@ __LJMP static int hlua_httpclient_send(lua_State *L, enum http_meth_t meth) struct hlua *hlua; const char *url_str = NULL; const char *body_str = NULL; - size_t buf_len; + size_t buf_len = 0; int ret; hlua = hlua_gethlua(L); @@ -7376,7 +7376,7 @@ __LJMP static int hlua_httpclient_send(lua_State *L, enum http_meth_t meth) hlua_hc->hc->ops.res_end = hlua_httpclient_cb; /* a body is available, it will use the request callback */ - if (body_str) { + if (body_str && buf_len) { hlua_hc->hc->ops.req_payload = hlua_httpclient_cb; }