on master help sign in
cleanup whitespace
824691aMatt Brown
Network/Wai/Handler/Warp.hs+8−12
@@ -324,8 +324,7 @@ sendResponse th req hv socket (ResponseBuilder s hs b)
324 return True
324 return True
325 where
325 where
326 headers' = headers hv s hs isChunked'
326 headers' = headers hv s hs isChunked'
327− b' =
328− if isChunked'
327+ b' = if isChunked'
329 then headers'
328 then headers'
330 `mappend` chunkedTransferEncoding b
329 `mappend` chunkedTransferEncoding b
331 `mappend` chunkedTransferTerminator
330 `mappend` chunkedTransferTerminator
@@ -337,14 +336,12 @@ sendResponse th req hv socket (ResponseEnumerator res) =
337 res go
336 res go
338 where
337 where
339 -- FIXME perhaps alloca a buffer per thread and reuse that in all functiosn below. Should lessen greatly the GC burden (I hope)
338 -- FIXME perhaps alloca a buffer per thread and reuse that in all functiosn below. Should lessen greatly the GC burden (I hope)
340− go s hs
341− | not (hasBody s req) = do
339+ go s hs | not (hasBody s req) = do
342 liftIO $ Sock.sendMany socket
340 liftIO $ Sock.sendMany socket
343 $ L.toChunks $ toLazyByteString
341 $ L.toChunks $ toLazyByteString
344 $ headers hv s hs False
342 $ headers hv s hs False
345 return True
343 return True
346− go s hs =
344+ go s hs = chunk'
347− chunk'
348 $ E.enumList 1 [headers hv s hs isChunked']
345 $ E.enumList 1 [headers hv s hs isChunked']
349 $$ E.joinI $ builderToByteString -- FIXME unsafeBuilderToByteString
346 $$ E.joinI $ builderToByteString -- FIXME unsafeBuilderToByteString
350 $$ (iterSocket th socket >> return isKeepAlive)
347 $$ (iterSocket th socket >> return isKeepAlive)
@@ -352,10 +349,9 @@ sendResponse th req hv socket (ResponseEnumerator res) =
352 hasLength = lookup "content-length" hs /= Nothing
349 hasLength = lookup "content-length" hs /= Nothing
353 isChunked' = isChunked hv && not hasLength
350 isChunked' = isChunked hv && not hasLength
354 isKeepAlive = isChunked' || hasLength
351 isKeepAlive = isChunked' || hasLength
355− chunk' i =
356− if isChunked'
352+ chunk' i = if isChunked'
357− then E.joinI $ chunk $$ i
353+ then E.joinI $ chunk $$ i
358− else i
354+ else i
359 chunk :: E.Enumeratee Builder Builder IO Bool
355 chunk :: E.Enumeratee Builder Builder IO Bool
360 chunk = E.checkDone $ E.continue . step
356 chunk = E.checkDone $ E.continue . step
361 step k E.EOF = k (E.Chunks [chunkedTransferTerminator]) >>== return
357 step k E.EOF = k (E.Chunks [chunkedTransferTerminator]) >>== return
@@ -369,8 +365,8 @@ parseHeaderNoAttr s =
369 restLen = S.length rest
365 restLen = S.length rest
370 -- FIXME check for colon without following space?
366 -- FIXME check for colon without following space?
371 rest' = if restLen > 1 && SU.unsafeTake 2 rest == ": "
367 rest' = if restLen > 1 && SU.unsafeTake 2 rest == ": "
372− then SU.unsafeDrop 2 rest
368+ then SU.unsafeDrop 2 rest
373− else rest
369+ else rest
374 in (mkCIByteString k, rest')
370 in (mkCIByteString k, rest')
375
371
376enumSocket :: T.Handle -> Int -> Socket -> E.Enumerator ByteString IO a
372enumSocket :: T.Handle -> Int -> Socket -> E.Enumerator ByteString IO a