@@ -174,10 +174,21 @@ performRequest acceptStatus req = do
174-- | TODO: support UVerb ('acceptStatus' argument, like in 'performRequest' above).
174-- | TODO: support UVerb ('acceptStatus' argument, like in 'performRequest' above).
175performWithStreamingRequest :: Request -> (StreamingResponse -> IO a) -> ClientM a
175performWithStreamingRequest :: Request -> (StreamingResponse -> IO a) -> ClientM a
176performWithStreamingRequest req k = do
176performWithStreamingRequest req k = do
177− m <- asks manager
177+ ClientEnv m burl cookieJar' createClientRequest <- ask
178− burl <- asks baseUrl
178+ clientRequest <- liftIO $ createClientRequest burl req
179− createClientRequest <- asks makeClientRequest
179+ request <- case cookieJar' of
180− request <- liftIO $ createClientRequest burl req
180+ Nothing -> pure clientRequest
181+ Just cj -> liftIO $ do
182+ now <- getCurrentTime
184+ oldCookieJar <- readTVar cj
185+ let (newRequest, newCookieJar) =
186+ Client.insertCookiesIntoRequest
190+ writeTVar cj newCookieJar
181 ClientM $ lift $ lift $ Codensity $ \k1 ->
192 ClientM $ lift $ lift $ Codensity $ \k1 ->
182 Client.withResponse request m $ \res -> do
193 Client.withResponse request m $ \res -> do
183 let status = Client.responseStatus res
194 let status = Client.responseStatus res