From a1547ce0a01cd63e5930de5f08148b523ac03cf0 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 24 May 2022 09:11:17 +0200 Subject: [PATCH] MINOR: stconn: consider CF_SHUTW for sc_is_send_allowed() When a shutdown(WR) is performed, send is no longer allowed, and that is currently handled by the explicit cs_done_get() in the various shutw() calls. That's a bit ugly and complicated for no reason, let's simply integrate the test of SHUTW in sc_is_send_allowed(). Note that the test could also be added wherever sc_is_send_allowed() is used but for now proceeding like this limits the changes. --- include/haproxy/cs_utils.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/haproxy/cs_utils.h b/include/haproxy/cs_utils.h index 22b21b27b..10a03a8f5 100644 --- a/include/haproxy/cs_utils.h +++ b/include/haproxy/cs_utils.h @@ -348,6 +348,11 @@ static inline const char *cs_state_str(int state) __attribute__((warn_unused_result)) static inline int sc_is_send_allowed(const struct stconn *sc) { + struct channel *oc = sc_oc(sc); + + if (oc->flags & CF_SHUTW) + return 0; + return cs_tx_endp_ready(sc) && !cs_tx_blocked(sc); }