on master help sign in
simpleserver uses sendfile
c0b487bMichael Snoyman
Network/Wai/Handler/SimpleServer.hs+2−1
@@ -39,6 +39,7 @@ import Web.Encodings.StringLike (StringLike)
39import qualified Web.Encodings.StringLike as SL
39import qualified Web.Encodings.StringLike as SL
40
40
41import qualified Safe
41import qualified Safe
42+import Network.Socket.SendFile
42
43
43run :: Port -> Application -> IO ()
44run :: Port -> Application -> IO ()
44run port = withSocketsDo .
45run port = withSocketsDo .
@@ -162,7 +163,7 @@ sendResponse h res = do
162 mapM_ putHeader $ headers res
163 mapM_ putHeader $ headers res
163 BS.hPut h $ SL.pack "\r\n"
164 BS.hPut h $ SL.pack "\r\n"
164 case body res of
165 case body res of
165− Left fp -> BL.readFile fp >>= BL.hPut h
166+ Left fp -> unsafeSendFile h fp
166 Right enum -> enum $ BS.hPut h
167 Right enum -> enum $ BS.hPut h
167 where
168 where
168 putHeader (x, y) = do
169 putHeader (x, y) = do