on master help sign in
Fixed HTTP 1.0 non-chunked response
commit718e7b72160fa066de91060b1b1e41983f5ba683 authorMichael Snoyman <michael@snoyman.com> dateFri 24 Dec 2010, 14:16 (16 years ago) parentbef6e37
1 file changed+6−2
Network/Wai/Handler/Warp.hs+6−2
Network/Wai/Handler/Warp.hs+6−2
@@ -197,11 +197,15 @@ isChunked = (==) http11
197197sendResponse :: HttpVersion -> Handle -> Response -> IO ()
198198sendResponse hv handle res = do
199199 responseEnumerator res $ \s hs ->
200− E.joinI $ chunk
201− $$ E.enumList 1 [headers hv s hs]
200+ chunk'
201+ $ E.enumList 1 [headers hv s hs]
202202 $$ E.joinI $ builderToByteString
203203 $$ iterHandle handle
204204 where
205+ chunk' i =
206+ if isChunked hv
207+ then E.joinI $ chunk $$ i
208+ else i
205209 chunk :: E.Enumeratee Builder Builder IO ()
206210 chunk = E.checkDone $ E.continue . step
207211 step k E.EOF = k (E.Chunks [chunkedTransferTerminator]) >>== return