on master help sign in
Refactor 'maybeEndHeaders' for adding the EndHeaders flag.
commit3875acffc735d0c9ef533dd77371931a5b76bcd1 authorAndrew Pritchard <awpr@google.com> dateMon 3 Aug 2015, 13:49 (11 years ago) parent7666038
1 file changed+6−6
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+6−6
warp/Network/Wai/Handler/Warp/HTTP2/Sender.hs+6−6
@@ -137,13 +137,15 @@ frameSender ctx@Context{outputQ,connectionWindow}
137137 flushN :: Int -> IO ()
138138 flushN n = bufferIO connWriteBuffer n connSendAll
139139
140+ -- A flags value with the end-header flag set iff the argument is B.Done.
141+ maybeEndHeaders B.Done = setEndHeader defaultFlags
142+ maybeEndHeaders _ = defaultFlags
143+
140144 -- Write header and possibly continuation frames into the connection
141145 -- buffer, using the given builder as their contents.
142146 headerContinue sid builder endOfStream = do
143147 (len, signal) <- B.runBuilder builder bufHeaderPayload headerPayloadLim
144− let flag0 = case signal of
145− B.Done -> setEndHeader defaultFlags
146− _ -> defaultFlags
148+ let flag0 = maybeEndHeaders signal
147149 flag = if endOfStream then setEndStream flag0 else flag0
148150 fillFrameHeader FrameHeaders len sid flag connWriteBuffer
149151 continue sid len signal
@@ -152,9 +154,7 @@ frameSender ctx@Context{outputQ,connectionWindow}
152154 continue sid len (B.More _ writer) = do
153155 flushN $ len + frameHeaderLength
154156 (len', signal') <- writer bufHeaderPayload headerPayloadLim
155− let flag = case signal' of
156− B.Done -> setEndHeader defaultFlags
157− _ -> defaultFlags
157+ let flag = maybeEndHeaders signal'
158158 fillFrameHeader FrameContinuation len' sid flag connWriteBuffer
159159 continue sid len' signal'
160160 continue sid len (B.Chunk bs writer) = do