From: Christopher Faulet Date: Thu, 6 Dec 2018 09:56:20 +0000 (+0100) Subject: MINOR: mux-h1: Drain obuf if the output is closed after sending data X-Git-Tag: v1.9-dev10~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=145aa4772cd28e11381209bd66104175c8a30a4d;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index c55fb7cd13..3b845a6ec9 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -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;