mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-16 02:30:46 +00:00
5df45cff8f
This case does not exist yet with the H1 multiplexer, but applets may decide to not produce data if there is not enough room in the destination buffer (the applet's outbuf or the opposite SE buffer). It is true for the stats applets for instance. However this case is not properly handled when the zero-copy forwarding is in-use. To fix the issue, the se_done_ff() function was modified to return the number of bytes really forwarded and to subs for sends if nothing was forwarded while the zero-copy forwarding was blocked by the producer. On the applet side, we take care to block the zero-copy forwarding if the applet requests more room. At the end, zero-copy forwarding is unblocked if something was forwarded. This way, it is now possible for the stats applet to report a full buffer and block the zero-copy forwarding, even if the buffer is not really full, by requesting more room. No backport needed. |
||
---|---|---|
.. | ||
haproxy | ||
import | ||
make |