1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-16 00:00:07 +01:00
libwebsockets/test-apps
Andy Green 4b7144f763 lws_buflist
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.
2018-04-19 16:15:10 +08:00
..
android align private LWS_NO_EXTENSIONS to be same as public LWS_WITHOUT_EXTENSIONS 2018-04-06 10:38:03 +08:00
private clean up top level of project 2017-09-27 08:24:05 +08:00
.gitignore clean up top level of project 2017-09-27 08:24:05 +08:00
attack.sh refactor mode and states into roles and states 2018-04-06 12:22:19 +08:00
candide.zip clean up top level of project 2017-09-27 08:24:05 +08:00
favicon.ico clean up top level of project 2017-09-27 08:24:05 +08:00
fuzxy.c lws_snprintf 2018-03-12 09:28:42 +08:00
http2.png wss-over-h2: show feedback in test page if active 2018-04-06 10:38:03 +08:00
leaf.jpg clean up top level of project 2017-09-27 08:24:05 +08:00
libwebsockets-test-server.service clean up top level of project 2017-09-27 08:24:05 +08:00
libwebsockets.org-logo.png clean up top level of project 2017-09-27 08:24:05 +08:00
lws-cgi-test.sh http2: make usable 2017-10-16 17:13:49 +08:00
lws-common.js http2: make usable 2017-10-16 17:13:49 +08:00
lws-ssh-test-keys Plugins: add ssh-base ssh server plugin 2017-10-16 16:59:57 +08:00
lws-ssh-test-keys.pub Plugins: add ssh-base ssh server plugin 2017-10-16 16:59:57 +08:00
test-client.c refactor role ops 2018-04-11 13:39:42 +08:00
test-echo.c lws_write_ws_flags helper 2018-04-06 10:38:03 +08:00
test-fraggle.c lws_write_ws_flags helper 2018-04-06 10:38:03 +08:00
test-lejp.c lejp: fix float 2018-01-04 10:28:06 +08:00
test-ping.c lws_snprintf 2018-03-12 09:28:42 +08:00
test-server-dumb-increment.c lws_set_timer_usecs: change to usec resolution 2018-04-06 10:38:03 +08:00
test-server-http.c refactor role ops 2018-04-11 13:39:42 +08:00
test-server-libev.c refactor role ops 2018-04-11 13:39:42 +08:00
test-server-libevent.c refactor role ops 2018-04-11 13:39:42 +08:00
test-server-libuv.c refactor role ops 2018-04-11 13:39:42 +08:00
test-server-pthreads.c refactor role ops 2018-04-11 13:39:42 +08:00
test-server-v2.0.c refactor role ops 2018-04-11 13:39:42 +08:00
test-server.c refactor role ops 2018-04-11 13:39:42 +08:00
test-server.h refactor role ops 2018-04-11 13:39:42 +08:00
test-sshd.c coverity 189197: workaround false cov detect 2018-04-06 11:31:24 +08:00
test.html lws_buflist 2018-04-19 16:15:10 +08:00
wss-over-h2.png wss-over-h2: show feedback in test page if active 2018-04-06 10:38:03 +08:00