MINOR: mux-h1: Drain obuf if the output is closed after sending data

It avoids to subscribe to send events because some may remain in the output
buffer. If the output is closed or if an error occurred, there is no way to send
these data anyway, so it is safe to drain them.
This commit is contained in:
Christopher Faulet 2018-12-06 10:56:20 +01:00 committed by Willy Tarreau
parent c14999b3bc
commit 145aa4772c

View File

@ -1627,6 +1627,11 @@ static int h1_send(struct h1c *h1c)
sent = 1;
}
if (conn->flags & (CO_FL_ERROR|CO_FL_SOCK_WR_SH)) {
/* error or output closed, nothing to send, clear the buffer to release it */
b_reset(&h1c->obuf);
}
end:
if (!(h1c->flags & H1C_F_OUT_FULL) && h1c->h1s && h1c->h1s->send_wait) {
struct h1s *h1s = h1c->h1s;