@@ -5,6 +5,9 @@ module Docker.Client.Http where
55
66-- import Control.Monad.Base (MonadBase(..), liftBaseDefault)
77import Control.Monad.Catch (MonadMask (..))
8+#if MIN_VERSION_http_conduit(2,3,0)
9+import Control.Monad.IO.Unlift (MonadUnliftIO)
10+#endif
811import Control.Monad.Reader (ReaderT (..), runReaderT)
912import qualified Data.ByteString.Char8 as BSC
1013import qualified Data.ByteString.Lazy as BL
@@ -104,12 +107,20 @@ mkHttpRequest verb e opts = request
104107 requestHeaders = [("Content-Type", "application/json; charset=utf-8")]}) $ getEndpointRequestBody e) <$> request'
105108 -- Note: Do we need to set length header?
106109
107−defaultHttpHandler :: (MonadIO m, MonadMask m) => m (HttpHandler m)
110+defaultHttpHandler :: (
111+#if MIN_VERSION_http_conduit(2,3,0)
112+ MonadUnliftIO m,
113+#endif
114+ MonadIO m, MonadMask m) => m (HttpHandler m)
108115defaultHttpHandler = do
109116 manager <- liftIO $ newManager defaultManagerSettings
110117 return $ httpHandler manager
111118
112−httpHandler :: (MonadIO m, MonadMask m) => HTTP.Manager -> HttpHandler m
119+httpHandler :: (
120+#if MIN_VERSION_http_conduit(2,3,0)
121+ MonadUnliftIO m,
122+#endif
123+ MonadIO m, MonadMask m) => HTTP.Manager -> HttpHandler m
113124httpHandler manager = HttpHandler $ \request' sink -> do -- runResourceT ..
114125 let request = NHS.setRequestManager manager request'
115126 try (NHS.httpSink request sink) >>= \res -> case res of
@@ -127,7 +138,11 @@ httpHandler manager = HttpHandler $ \request' sink -> do -- runResourceT ..
127138--
128139-- Docker seems to ignore the hostname in requests sent over unix domain
129140-- sockets (and the port obviously doesn't matter either)
130−unixHttpHandler :: (MonadIO m, MonadMask m) => FilePath -- ^ The socket to connect to
141+unixHttpHandler :: (
142+#if MIN_VERSION_http_conduit(2,3,0)
143+ MonadUnliftIO m,
144+#endif
145+ MonadIO m, MonadMask m) => FilePath -- ^ The socket to connect to
131146 -> m (HttpHandler m)
132147unixHttpHandler fp = do
133148 let mSettings = defaultManagerSettings