mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 15:47:01 +02:00
BUG/MINOR: hlua: Rely on CF_EOI to detect end of message in HTTP applets
applet:getline() and applet:receive() functions for HTTP applets must rely on the channel flags to detect the end of the message and not on HTX flags. It means CF_EOI must be used instead of HTX_FL_EOM. It is important because the HTX flag is transient. Because there is no flag on HTTP applets to save the info, it is not reliable. However CF_EOI once set is never removed. So it is safer to rely on it. Otherwise, the call to these functions hang. This patch must be backported as far as 2.4.
This commit is contained in:
parent
b372f16d35
commit
4a20972a95
@ -5058,7 +5058,7 @@ __LJMP static int hlua_applet_http_getline_yield(lua_State *L, int status, lua_K
|
||||
/* The message was fully consumed and no more data are expected
|
||||
* (EOM flag set).
|
||||
*/
|
||||
if (htx_is_empty(htx) && (htx->flags & HTX_FL_EOM))
|
||||
if (htx_is_empty(htx) && (req->flags & CF_EOI))
|
||||
stop = 1;
|
||||
|
||||
htx_to_buf(htx, &req->buf);
|
||||
@ -5150,7 +5150,7 @@ __LJMP static int hlua_applet_http_recv_yield(lua_State *L, int status, lua_KCon
|
||||
/* The message was fully consumed and no more data are expected
|
||||
* (EOM flag set).
|
||||
*/
|
||||
if (htx_is_empty(htx) && (htx->flags & HTX_FL_EOM))
|
||||
if (htx_is_empty(htx) && (req->flags & CF_EOI))
|
||||
len = 0;
|
||||
|
||||
htx_to_buf(htx, &req->buf);
|
||||
|
Loading…
Reference in New Issue
Block a user