@@ -36,15 +36,17 @@ import qualified System.PosixCompat.Files as P
36----------------------------------------------------------------
36----------------------------------------------------------------
37----------------------------------------------------------------
37----------------------------------------------------------------
39+sendResponse :: Connection
39−sendResponse :: InternalInfo -> Request -> Connection
40+ -> InternalInfo
40 -> (forall a. IO a -> IO a) -- ^ restore masking state
41 -> (forall a. IO a -> IO a) -- ^ restore masking state
41− -> IndexedHeader
43+ -> IndexedHeader -- ^ Indexed header of HTTP request
42 -> Response
44 -> Response
43 -> IO Bool
45 -> IO Bool
45----------------------------------------------------------------
47----------------------------------------------------------------
47−sendResponse ii req conn restore reqidxhdr (ResponseFile s0 hs0 path mpart0) =
49+sendResponse conn ii restore req reqidxhdr (ResponseFile s0 hs0 path mpart0) =
48 restore $ headerAndLength >>= sendResponse'
50 restore $ headerAndLength >>= sendResponse'
50 hs = addAccept hs0
52 hs = addAccept hs0
@@ -98,13 +100,13 @@ sendResponse ii req conn restore reqidxhdr (ResponseFile s0 hs0 path mpart0) =
98 (isPersist,_) = infoFromRequest req reqidxhdr
100 (isPersist,_) = infoFromRequest req reqidxhdr
100 sendResponse' (Left (_ :: SomeException)) =
102 sendResponse' (Left (_ :: SomeException)) =
101− sendResponse ii req conn restore reqidxhdr notFound
103+ sendResponse conn ii restore req reqidxhdr notFound
103 notFound = responseLBS H.status404 [(H.hContentType, "text/plain")] "File not found"
105 notFound = responseLBS H.status404 [(H.hContentType, "text/plain")] "File not found"
105----------------------------------------------------------------
107----------------------------------------------------------------
107−sendResponse ii req conn restore reqidxhdr (ResponseBuilder s hs b)
109+sendResponse conn ii restore req reqidxhdr (ResponseBuilder s hs b)
108 | hasBody s req = restore $ do
110 | hasBody s req = restore $ do
109 header <- composeHeaderBuilder version s hs needsChunked
111 header <- composeHeaderBuilder version s hs needsChunked
@@ -127,7 +129,7 @@ sendResponse ii req conn restore reqidxhdr (ResponseBuilder s hs b)
128----------------------------------------------------------------
130----------------------------------------------------------------
130−sendResponse ii req conn restore reqidxhdr (ResponseSource s hs withBodyFlush)
132+sendResponse conn ii restore req reqidxhdr (ResponseSource s hs withBodyFlush)
131 | hasBody s req = withBodyFlush $ \bodyFlush -> restore $ do
133 | hasBody s req = withBodyFlush $ \bodyFlush -> restore $ do
132 header <- liftIO $ composeHeaderBuilder version s hs needsChunked
134 header <- liftIO $ composeHeaderBuilder version s hs needsChunked
133 let src = CL.sourceList [header] `mappend` cbody bodyFlush
135 let src = CL.sourceList [header] `mappend` cbody bodyFlush