Check if the buffer is avalaible because HAProxy doesn't allocate
the request buffer if its not required. Sometimes, the Lua need to
write some data to the server before that the client send his data.
return 1;
}
+ /* Check if the buffer is avalaible because HAProxy doesn't allocate
+ * the request buffer if its not required.
+ */
+ if (chn->chn->buf->size == 0) {
+ if (!session_alloc_recv_buffer(chn->s, &chn->chn->buf)) {
+ chn->chn->prod->flags |= SI_FL_WAIT_ROOM;
+ WILL_LJMP(hlua_yieldk(L, 0, 0, _hlua_channel_send, TICK_ETERNITY, 0));
+ }
+ }
+
max = channel_recv_limit(chn->chn) - buffer_len(chn->chn->buf);
if (max > len - l)
max = len - l;