mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-26 08:11:21 +02:00
BUG/MEDIUM: h2: don't try (and fail) to send non-existing data in the mux
The call to xprt->snd_buf() was not conditionned on the presence of data in the buffer, resulting in snd_buf() returning 0 and never disabling the polling. It was revealed by the previous bug on error processing but must properly be handled.
This commit is contained in:
parent
3eabe9b174
commit
319994a2e9
@ -1987,7 +1987,7 @@ static void h2_send(struct connection *conn)
|
|||||||
if (h2c->flags & (H2_CF_MUX_MFULL | H2_CF_DEM_MBUSY | H2_CF_DEM_MROOM))
|
if (h2c->flags & (H2_CF_MUX_MFULL | H2_CF_DEM_MBUSY | H2_CF_DEM_MROOM))
|
||||||
flags |= CO_SFL_MSG_MORE;
|
flags |= CO_SFL_MSG_MORE;
|
||||||
|
|
||||||
if (conn->xprt->snd_buf(conn, h2c->mbuf, flags) <= 0)
|
if (h2c->mbuf->o && conn->xprt->snd_buf(conn, h2c->mbuf, flags) <= 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* wrote at least one byte, the buffer is not full anymore */
|
/* wrote at least one byte, the buffer is not full anymore */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user