mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
![]() For h1 / ws, a combination of removing POLLIN wait and stashing any unused rx lets us immediately respond to rx flow control requests in a simple and effective way, because the tcp socket is the stream. But for muxed protocols like h2, that technique cannot be used because we cannot silence the whole bundle of streams because one can't handle any more rx dynamically. There are control frames and content for other streams serialized inbetween the flow controlled stream content. We have no choice but to read to so we can see the other things. Therefore for muxed protocols like h2 and spdy, rx flow control boils down to tx credit manipulation on individual streams to staunch the flow at the peer. However that requires a round trip to take effect, any transmitted packets that were in flight before the tx credit reduction arrives at the remote peer are still going to come and have to be dealt with by adding them to the stash. This patch introduces lws_buflist scatter-gather type buffer management for rxflow handling, so we can append buffer segments in a linked-list to handle whatever rx is unavoidably in flight on a stream that is trying to assert rx flow control. |
||
---|---|---|
.. | ||
etc-logrotate.d-lwsws | ||
etc-lwsws-conf-EXAMPLE | ||
etc-lwsws-conf.d-localhost-EXAMPLE | ||
main.c | ||
usr-lib-systemd-system-lwsws.service |