]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: stconn: Check room needed to unblock SC on fast-forward
authorChristopher Faulet <cfaulet@haproxy.com>
Fri, 5 May 2023 09:40:07 +0000 (11:40 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 5 May 2023 13:44:23 +0000 (15:44 +0200)
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

index 41172519f0aa19b77aef88330e38f4de81da0755..4290961d1f20a65b8147a834a223bc77d57415da 100644 (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);
        }