on master help sign in
Using our receive.

fixme: no free recieve-buffer yet.

commit55316192f7c4d66a132317b5d24c33dfbb0a2b95 authorKazu Yamamoto <kazu@iij.ad.jp> dateWed 9 Oct 2013, 16:21 (13 years ago) parentb70207e
2 files changed+7−4
warp/Network/Wai/Handler/Warp/Run.hs+6−4 warp/warp.cabal+1
warp/Network/Wai/Handler/Warp/Run.hs+6−4
@@ -24,6 +24,7 @@ import Network.Wai.Handler.Warp.Response
2424import Network.Wai.Handler.Warp.Settings
2525import qualified Network.Wai.Handler.Warp.Timeout as T
2626import Network.Wai.Handler.Warp.Types
27+import Network.Wai.Handler.Warp.Recv
2728
2829#if WINDOWS
2930import qualified Control.Concurrent.MVar as MV
@@ -44,13 +45,13 @@ bytesPerRead :: Int
4445bytesPerRead = 4096
4546
4647-- | Default action value for 'Connection'
47−socketConnection :: Socket -> Connection
48−socketConnection s = Connection
48+socketConnection :: Socket -> ReceiveBuffer -> Connection
49+socketConnection s buf = Connection
4950 { connSendMany = Sock.sendMany s
5051 , connSendAll = Sock.sendAll s
5152 , connSendFile = sendFile s
5253 , connClose = sClose s
53− , connRecv = Sock.recv s bytesPerRead
54+ , connRecv = receive s buf bytesPerRead
5455 }
5556
5657sendFile :: Socket -> FilePath -> Integer -> Integer -> IO () -> [ByteString] -> Cleaner -> IO ()
@@ -110,8 +111,9 @@ runSettingsSocket set socket app =
110111 where
111112 getter = do
112113 (conn, sa) <- accept socket
114+ buf <- allocateRecvBuffer bytesPerRead
113115 setSocketCloseOnExec socket
114− return (socketConnection conn, sa)
116+ return (socketConnection conn buf, sa)
115117
116118runSettingsConnection :: Settings -> IO (Connection, SockAddr) -> Application -> IO ()
117119runSettingsConnection set getConn app = runSettingsConnectionMaker set getConnMaker app
warp/warp.cabal+1
@@ -59,6 +59,7 @@ Library
5959 Network.Wai.Handler.Warp.Run
6060 Network.Wai.Handler.Warp.Settings
6161 Network.Wai.Handler.Warp.Types
62+ Network.Wai.Handler.Warp.Recv
6263 Paths_warp
6364 Ghc-Options: -Wall
6465 if (os(linux) || os(freebsd) || os(darwin)) && flag(allow-sendfilefd)