summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2021-09-29 09:24:34 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2021-10-01 06:39:47 -0400
commitb5d41691560540922a615a9b1d3e86f7a0c3a233 (patch)
treeb07f61f0a988f065cc63e1313ea04d66ee228e77 /src
parent62dc817cafb3f9555d835ce20927538aa73c993a (diff)
downloadlighttpd-git-b5d41691560540922a615a9b1d3e86f7a0c3a233.tar.gz
[core] allow up to 32k of data frames per stream
allow up to 32k of data frames per stream per round (previously limited to single max_frame_size (default 16k)) For 8 streams, 32k*8 is 256k, which is current lighttpd MAX_WRITE_LIMIT, so each stream still gets a chance to write data (unless write queue not emptied on previous attempt, reducing add limit this round)
Diffstat (limited to 'src')
-rw-r--r--src/connections.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/connections.c b/src/connections.c
index 87f22772..12dd030d 100644
--- a/src/connections.c
+++ b/src/connections.c
@@ -1273,7 +1273,7 @@ connection_state_machine_h2 (request_st * const h2r, connection * const con)
& (FDEVENT_STREAM_RESPONSE
|FDEVENT_STREAM_RESPONSE_BUFMIN)))) {
- uint32_t dlen = (uint32_t)max_bytes;
+ uint32_t dlen = max_bytes > 32768 ? 32768 : (uint32_t)max_bytes;
dlen = h2_send_cqdata(r, con, &r->write_queue, dlen);
max_bytes -= (off_t)dlen;