@@ -40,7 +40,9 @@ import Network.Socket (Socket(..))
4040#if WINDOWS
4141import qualified Control.Concurrent.MVar as MV
4242import Network.Socket (withSocketsDo)
43−#else
43+#endif
44+
45+#if SENDFILEFD
4446import qualified Network.Wai.Handler.Warp.FdCache as F
4547#endif
4648
@@ -67,13 +69,13 @@ socketConnection s = Connection
6769 }
6870
6971sendFile :: Socket -> FilePath -> Integer -> Integer -> IO () -> [ByteString] -> Cleaner -> IO ()
70−#if WINDOWS
71−sendFile s path off len act hdr _ =
72− sendfileWithHeader s path (PartOfFile off len) act hdr
73−#else
72+#if SENDFILEFD
7473sendFile s path off len act hdr cleaner = do
7574 (fd, fresher) <- F.getFd (fdCacher cleaner) path
7675 sendfileFdWithHeader s fd (PartOfFile off len) (act>>fresher) hdr
76+#else
77+sendFile s path off len act hdr _ =
78+ sendfileWithHeader s path (PartOfFile off len) act hdr
7779#endif
7880
7981#if __GLASGOW_HASKELL__ < 702
@@ -125,7 +127,7 @@ runSettingsConnection :: Settings -> IO (Connection, SockAddr) -> Application ->
125127runSettingsConnection set getConn app = do
126128 tm <- maybe (T.initialize $ settingsTimeout set * 1000000) return
127129 $ settingsManager set
128−#if !WINDOWS
130+#if SENDFILEFD
129131 fc <- F.initialize (settingsFdCacheDuration set * 1000000)
130132#endif
131133 mask $ \restore -> forever $ do
@@ -133,10 +135,10 @@ runSettingsConnection set getConn app = do
133135 (conn, addr) <- getConnLoop
134136 void . forkIO $ do
135137 th <- T.registerKillThread tm
136−#if WINDOWS
137− let cleaner = Cleaner th
138−#else
138+#if SENDFILEFD
139139 let cleaner = Cleaner th fc
140+#else
141+ let cleaner = Cleaner th
140142#endif
141143 let serve = do
142144 onOpen