on master help sign in
changing the signature of sendResponse
ed67c12Kazu Yamamoto
warp/Network/Wai/Handler/Warp/Response.hs+8−6
@@ -36,15 +36,17 @@ import qualified System.PosixCompat.Files as P
36----------------------------------------------------------------
36----------------------------------------------------------------
37----------------------------------------------------------------
37----------------------------------------------------------------
38
38
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
42+ -> Request
41− -> IndexedHeader
43+ -> IndexedHeader -- ^ Indexed header of HTTP request
42 -> Response
44 -> Response
43 -> IO Bool
45 -> IO Bool
44
46
45----------------------------------------------------------------
47----------------------------------------------------------------
46
48
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'
49 where
51 where
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
99
101
100 sendResponse' (Left (_ :: SomeException)) =
102 sendResponse' (Left (_ :: SomeException)) =
101− sendResponse ii req conn restore reqidxhdr notFound
103+ sendResponse conn ii restore req reqidxhdr notFound
102 where
104 where
103 notFound = responseLBS H.status404 [(H.hContentType, "text/plain")] "File not found"
105 notFound = responseLBS H.status404 [(H.hContentType, "text/plain")] "File not found"
104
106
105----------------------------------------------------------------
107----------------------------------------------------------------
106
108
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
110 let body
112 let body
@@ -127,7 +129,7 @@ sendResponse ii req conn restore reqidxhdr (ResponseBuilder s hs b)
127
129
128----------------------------------------------------------------
130----------------------------------------------------------------
129
131
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
warp/Network/Wai/Handler/Warp/Run.hs+2−2
@@ -218,7 +218,7 @@ serveConnection timeoutHandle settings ii app conn remoteHost' =
218 th = threadHandle ii
218 th = threadHandle ii
219
219
220 send500 = void $ mask $ \restore ->
220 send500 = void $ mask $ \restore ->
221− sendResponse ii dummyreq conn restore defaultIndexRequestHeader internalError
221+ sendResponse conn ii restore dummyreq defaultIndexRequestHeader internalError
222
222
223 dummyreq = defaultRequest { remoteHost = remoteHost' }
223 dummyreq = defaultRequest { remoteHost = remoteHost' }
224
224
@@ -237,7 +237,7 @@ serveConnection timeoutHandle settings ii app conn remoteHost' =
237 keepAlive <- mask $ \restore -> do
237 keepAlive <- mask $ \restore -> do
238 res <- restore $ app env
238 res <- restore $ app env
239 liftIO $ T.resume th
239 liftIO $ T.resume th
240− sendResponse ii env conn restore idxhdr res
240+ sendResponse conn ii restore env idxhdr res
241
241
242 -- We just send a Response and it takes a time to
242 -- We just send a Response and it takes a time to
243 -- receive a Request again. If we immediately call recv,
243 -- receive a Request again. If we immediately call recv,