From: Willy Tarreau Date: Mon, 20 Apr 2026 14:15:27 +0000 (+0200) Subject: CLEANUP: mux-h1: remove the unneeded test on conn->owner in h1s_finish_detach() X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=2f61566b03051bbb74921a38c7b3f031b9f1ee6f;p=thirdparty%2Fhaproxy.git CLEANUP: mux-h1: remove the unneeded test on conn->owner in h1s_finish_detach() There was a test below the "release" label on conn->owner to decide whether to kill the connection or not. But this test is not needed, because: - for frontends, it's always set so the test never matches - for backends, it was NULL on the second stream once a request was being reused from an idle pool, so it couldn't be used to discriminate between connections. In practice, the goal was to try to detect certain dead connections but all cases leading to such connections are either already handled in the tests before (which don't reach this label), or are handled by the other conditions. Thus, let's remove this confusing test. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index bcf06635b..eaf9f43c8 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -1251,8 +1251,7 @@ static int h1s_finish_detach(struct h1s *h1s) /* We don't want to close right now unless the connection is in error or shut down for writes */ if ((h1c->flags & H1C_F_ERROR) || (h1c->state == H1_CS_CLOSED) || - (h1c->state == H1_CS_CLOSING && !b_data(&h1c->obuf)) || - !h1c->conn->owner) { + (h1c->state == H1_CS_CLOSING && !b_data(&h1c->obuf))) { TRACE_DEVEL("killing dead connection", H1_EV_STRM_END, h1c->conn); h1_release(h1c); goto released;