diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:20:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:20:34 +0000 |
commit | f3bb08bb1d94c77704371f8546a739119f0a05b4 (patch) | |
tree | 5dfb47fa424ecde655f8950098411a311e9296e6 /src/stconn.c | |
parent | Releasing progress-linux version 2.9.6-1~progress7.99u1. (diff) | |
download | haproxy-f3bb08bb1d94c77704371f8546a739119f0a05b4.tar.xz haproxy-f3bb08bb1d94c77704371f8546a739119f0a05b4.zip |
Merging upstream version 2.9.7.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/stconn.c')
-rw-r--r-- | src/stconn.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/stconn.c b/src/stconn.c index 8e3ae7e..df119a1 100644 --- a/src/stconn.c +++ b/src/stconn.c @@ -526,7 +526,7 @@ static inline int sc_cond_forward_shut(struct stconn *sc) if (!(sc->flags & (SC_FL_EOS|SC_FL_ABRT_DONE)) || !(sc->flags & SC_FL_NOHALF)) return 0; - if (co_data(sc_ic(sc)) && !(sc_ic(sc)->flags & CF_WRITE_TIMEOUT)) { + if ((co_data(sc_ic(sc)) || sc_ep_have_ff_data(sc_opposite(sc))) && !(sc_ic(sc)->flags & CF_WRITE_TIMEOUT)) { /* the shutdown cannot be forwarded now because * we should flush outgoing data first. But instruct the output * channel it should be done ASAP. @@ -1060,7 +1060,7 @@ void sc_notify(struct stconn *sc) struct task *task = sc_strm_task(sc); /* process consumer side */ - if (!co_data(oc)) { + if (!co_data(oc) && !sc_ep_have_ff_data(sco)) { struct connection *conn = sc_conn(sc); if (((sc->flags & (SC_FL_SHUT_DONE|SC_FL_SHUT_WANTED)) == SC_FL_SHUT_WANTED) && |