mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-17 00:44:33 +00:00
BUG/MEDIUM: lua: sockets don't have buffer to write data
When we try to write data in a session from another session, the "req" buffer is not allowed. This patch try to allocate the buffer. The session wait if the buffer is not yet avalaible.
This commit is contained in:
parent
e83766afd1
commit
486d52a2a3
10
src/hlua.c
10
src/hlua.c
@ -1368,6 +1368,16 @@ static int hlua_socket_write_yield(struct lua_State *L,int status, lua_KContext
|
||||
if (sent >= buf_len)
|
||||
return 1; /* Implicitly return the length sent. */
|
||||
|
||||
/* Check if the buffer is avalaible because HAProxy doesn't allocate
|
||||
* the request buffer if its not required.
|
||||
*/
|
||||
if (socket->s->req->buf->size == 0) {
|
||||
if (!session_alloc_recv_buffer(socket->s, &socket->s->req->buf)) {
|
||||
socket->s->req->prod->flags |= SI_FL_WAIT_ROOM;
|
||||
goto hlua_socket_write_yield_return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for avalaible space. */
|
||||
len = buffer_total_space(socket->s->si[0].ib->buf);
|
||||
if (len <= 0)
|
||||
|
Loading…
Reference in New Issue
Block a user