@@ -29,14 +29,20 @@ import Network.Wai
29import Network.Socket
29import Network.Socket
30import qualified Data.ByteString.Lazy as L
30import qualified Data.ByteString.Lazy as L
31import Data.Conduit.Binary (sourceFileRange)
31import Data.Conduit.Binary (sourceFileRange)
32+import Control.Monad.Trans.Resource (runResourceT)
32import qualified Data.Conduit as C
33import qualified Data.Conduit as C
33import qualified Data.Conduit.List as CL
34import qualified Data.Conduit.List as CL
34import Control.Exception (bracket, finally, handle)
35import Control.Exception (bracket, finally, handle)
35import qualified Network.TLS.Extra as TLSExtra
36import qualified Network.TLS.Extra as TLSExtra
36import qualified Data.ByteString as B
37import qualified Data.ByteString as B
38+#if MIN_VERSION_conduit(1,1,0)
39+import Data.Streaming.Network (bindPortTCP, acceptSafe)
37−import Data.Conduit.Network (bindPort)
41+import Data.Conduit.Network (bindPort, acceptSafe)
42+#define bindPortTCP bindPort
38import Control.Applicative ((<$>))
44import Control.Applicative ((<$>))
39−import Data.Conduit.Network (sourceSocket, sinkSocket, acceptSafe)
45+import Data.Conduit.Network (sourceSocket, sinkSocket)
40import Data.Maybe (fromMaybe)
46import Data.Maybe (fromMaybe)
41import qualified Data.IORef as I
47import qualified Data.IORef as I
42import Control.Exception (Exception, throwIO)
48import Control.Exception (Exception, throwIO)
@@ -148,7 +154,7 @@ runTLSSocket TLSSettings {..} set sock app = do
148 , connSendAll = TLS.sendData ctx . L.fromChunks . return
154 , connSendAll = TLS.sendData ctx . L.fromChunks . return
149 , connSendFile = \fp offset len _th headers -> do
155 , connSendFile = \fp offset len _th headers -> do
150 TLS.sendData ctx $ L.fromChunks headers
156 TLS.sendData ctx $ L.fromChunks headers
151− C.runResourceT $ sourceFileRange fp (Just offset) (Just len) C.$$ CL.mapM_ (TLS.sendData ctx . L.fromChunks . return)
157+ runResourceT $ sourceFileRange fp (Just offset) (Just len) C.$$ CL.mapM_ (TLS.sendData ctx . L.fromChunks . return)
152 , connClose =
158 , connClose =
153 TLS.bye ctx `finally`
159 TLS.bye ctx `finally`
154 TLS.contextClose ctx
160 TLS.contextClose ctx
@@ -190,7 +196,7 @@ instance Exception WarpTLSException
190runTLS :: TLSSettings -> Settings -> Application -> IO ()
196runTLS :: TLSSettings -> Settings -> Application -> IO ()
191runTLS tset set app = withSocketsDo $
197runTLS tset set app = withSocketsDo $
193− (bindPort (settingsPort set) (settingsHost set))
199+ (bindPortTCP (settingsPort set) (settingsHost set))
195 (\sock -> runTLSSocket tset set sock app)
201 (\sock -> runTLSSocket tset set sock app)