MEDIUM: stconn: Check room needed to unblock SC on fast-forward

During fast-forward, if the SC is waiting for a minimum free space to
receive more data and some data was sent, it is only unblock is the
condition is respected. 0 is special case where the SC is unconditionally
unblocked.
This commit is contained in:
Christopher Faulet 2023-05-05 11:40:07 +02:00
parent c184b11b1a
commit 18b3309f38

View file

@ -1088,7 +1088,7 @@ static void sc_notify(struct stconn *sc)
/* check if the consumer has freed some space either in the
* buffer or in the pipe.
*/
if (new_len < last_len)
if (!sc->room_needed || (new_len < last_len && (sc->room_needed < 0 || channel_recv_max(ic) >= sc->room_needed)))
sc_have_room(sc);
}