From: Willy Tarreau Date: Tue, 24 May 2022 07:11:17 +0000 (+0200) Subject: MINOR: stconn: consider CF_SHUTW for sc_is_send_allowed() X-Git-Tag: v2.6-dev12~67 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a1547ce0a01cd63e5930de5f08148b523ac03cf0;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/haproxy/cs_utils.h b/include/haproxy/cs_utils.h index 22b21b27b7..10a03a8f57 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); }