@@ -6,21 +6,22 @@
66
77module Network.Wai.Handler.Warp.Run where
88
9+import Control.Arrow (first)
910import Control.Concurrent (threadDelay, forkIOWithUnmask)
1011import qualified Control.Concurrent as Conc (yield)
1112import Control.Exception as E
1213import Control.Monad (forever, when, unless, void)
1314import Data.ByteString (ByteString)
1415import qualified Data.ByteString as S
16+import Data.IORef (IORef, newIORef, readIORef, writeIORef)
1517import Data.Streaming.Network (bindPortTCP)
1618import Network (sClose, Socket)
1719import Network.Socket (accept, withSocketsDo, SockAddr)
1820import qualified Network.Socket.ByteString as Sock
1921import Network.Wai
20−import Network.Wai.Internal (ResponseReceived (ResponseReceived))
22+import Network.Wai.Handler.Warp.Buffer
2123import qualified Network.Wai.Handler.Warp.Date as D
2224import qualified Network.Wai.Handler.Warp.FdCache as F
23−import Network.Wai.Handler.Warp.Buffer
2425import Network.Wai.Handler.Warp.Header
2526import Network.Wai.Handler.Warp.Recv
2627import Network.Wai.Handler.Warp.Request
@@ -29,7 +30,7 @@ import Network.Wai.Handler.Warp.SendFile
2930import Network.Wai.Handler.Warp.Settings
3031import qualified Network.Wai.Handler.Warp.Timeout as T
3132import Network.Wai.Handler.Warp.Types
32−import Data.IORef (IORef, newIORef, readIORef, writeIORef)
33+import Network.Wai.Internal (ResponseReceived (ResponseReceived))
3334
3435#if WINDOWS
3536import Network.Wai.Handler.Warp.Windows
@@ -112,7 +113,7 @@ runSettingsConnectionMaker :: Settings -> IO (IO Connection, SockAddr) -> Applic
112113runSettingsConnectionMaker x y =
113114 runSettingsConnectionMakerSecure x (go y)
114115 where
115− go = fmap (\(a, b) -> (fmap (, False) a, b))
116+ go = fmap (first (fmap (, False)))
116117
117118-- | Allows you to provide a function which will return a function
118119-- which will return 'Connection'.