]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: stconn: consider CF_SHUTW for sc_is_send_allowed()
authorWilly Tarreau <w@1wt.eu>
Tue, 24 May 2022 07:11:17 +0000 (09:11 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 27 May 2022 17:33:34 +0000 (19:33 +0200)
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

index 22b21b27b7e02de08235f6be0f9273654d3bead9..10a03a8f5790bb79e6be11860aa13a643914bc4a 100644 (file)
@@ -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);
 }