mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 06:11:32 +01:00
MEDIUM: stconn: Check room needed to unblock opposite SC when data was sent
After a sending attempt, we check the opposite SC to see if it is waiting for a minimum free space to receive more data. If the condition is respected, it is unblocked. 0 is special case where the SC is unconditionally unblocked.
This commit is contained in:
parent
18b3309f38
commit
e7405d4124
@ -1664,9 +1664,11 @@ static int sc_conn_send(struct stconn *sc)
|
||||
oc->flags |= CF_WRITE_EVENT | CF_WROTE_DATA;
|
||||
if (sc->state == SC_ST_CON)
|
||||
sc->state = SC_ST_RDY;
|
||||
sc_have_room(sc_opposite(sc));
|
||||
}
|
||||
|
||||
if (!sco->room_needed || (did_send && (sco->room_needed < 0 || channel_recv_max(sc_oc(sc)) >= sco->room_needed)))
|
||||
sc_have_room(sco);
|
||||
|
||||
if (sc_ep_test(sc, SE_FL_ERROR | SE_FL_ERR_PENDING)) {
|
||||
oc->flags |= CF_WRITE_EVENT;
|
||||
BUG_ON(sc_ep_test(sc, SE_FL_EOS|SE_FL_ERROR|SE_FL_ERR_PENDING) == (SE_FL_EOS|SE_FL_ERR_PENDING));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user