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