on master help sign in
minimun check for connection window.
commit3dab0f0003a869c88854b3c6ca34b2e6ae2851fe authorKazu Yamamoto <kazu@iij.ad.jp> dateFri 18 Dec 2015, 14:42 (11 years ago) parent6c1f811
1 file changed+4−2
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+4−2
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+4−2
@@ -105,8 +105,6 @@ frameSender ctx@Context{outputQ,connectionWindow,encodeDynamicTable}
105105 switch out@(OResponse strm rsp binfo) pre = do
106106 writeIORef (streamPrecedence strm) pre
107107 whenReadyOrEnqueueAgain strm binfo out $ \sws -> do
108− cws <- getConnectionWindowSizeWhenReady ctx
109− let !lim = min cws sws
110108 -- Header frame and Continuation frame
111109 let sid = streamNumber strm
112110 endOfStream = case binfo of
@@ -120,6 +118,8 @@ frameSender ctx@Context{outputQ,connectionWindow,encodeDynamicTable}
120118 -- Data frame payload
121119 (off, _) <- sendHeadersIfNecessary total
122120 let payloadOff = off + frameHeaderLength
121+ cws <- getConnectionWindowSizeWhenReady ctx
122+ let !lim = min cws sws
123123 Next datPayloadLen mnext <-
124124 fillResponseBodyGetNext conn ii payloadOff lim rsp
125125 fillDataHeaderSend strm total datPayloadLen mnext
@@ -133,6 +133,8 @@ frameSender ctx@Context{outputQ,connectionWindow,encodeDynamicTable}
133133 Persist sq -> do
134134 (off, needSend) <- sendHeadersIfNecessary total
135135 let payloadOff = off + frameHeaderLength
136+ cws <- getConnectionWindowSizeWhenReady ctx
137+ let !lim = min cws sws
136138 Next datPayloadLen mnext <-
137139 fillStreamBodyGetNext conn payloadOff lim sq strm
138140 -- If no data was immediately available, avoid sending an