]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: stconn: Be able to unblock zero-copy data forwarding from done_fastfwd
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 4 Jun 2024 09:54:18 +0000 (11:54 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 4 Jun 2024 12:23:40 +0000 (14:23 +0200)
commitd2a2014f152c09ff4f28c03a4ff6c5aae000ad5d
tree2d9fe43b328865bc4b225651ad78920a40c8da89
parent7c84ee71f77616f569081060d81455c137fc13f5
MEDIUM: stconn: Be able to unblock zero-copy data forwarding from done_fastfwd

This part is only experienced by applet. When an applet try to forward data
via an iobuf, it may decide to block for any reason even if there is free
space in the buffer. For instance, the stats applet don't procude data if
the buffer is almost full.

However, in this case, it could be good to let the consumer decide a new
attempt is possible because more space was made. So, if IOBUF_FL_FF_BLOCKED
flag is removed by the consumer when done_fastfwd() callback function is
called, the SE_FL_WANT_ROOM flag is removed on the producer sedesc. It is
only done for applets. And thanks to this change, the applet can be woken up
for a new attempt.

This patch is required for a fix on the QUIC multiplexer.
src/applet.c