From 26bd761f0175737b33d76d8a3a4f17f070bfc9b8 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Mon, 9 Oct 2017 16:47:04 +0200 Subject: [PATCH] MINOR: h2: also terminate the connection on shutr It happens that an H2 mux is totally unusable once the client has shut, so we must consider this situation equivalent to the connection error, and let the possible streams drain their data if needed then stop. --- src/mux_h2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 5457bc2c7..d69229f79 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -703,7 +703,8 @@ static int h2_wake(struct connection *conn) { struct h2c *h2c = conn->mux_ctx; - if (conn->flags & CO_FL_ERROR || h2c->st0 == H2_CS_ERROR2) { + if (conn->flags & CO_FL_ERROR || conn_xprt_read0_pending(conn) || + h2c->st0 == H2_CS_ERROR2) { h2_wake_all_streams(h2c); if (eb_is_empty(&h2c->streams_by_id)) {