From 18b3309f38108bdc0ba8d2bff2c66cb74d08f346 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Fri, 5 May 2023 11:40:07 +0200 Subject: [PATCH] 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. --- src/stconn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stconn.c b/src/stconn.c index 41172519f..4290961d1 100644 --- a/src/stconn.c +++ b/src/stconn.c @@ -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); }