packages feed

http-client-openssl 0.2.0.5 → 0.2.1.0

raw patch · 4 files changed

+49/−1 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.2.1.0++* Add support for http-proxy+ ## 0.2.0.5  * Use different domain name so tests pass
Network/HTTP/Client/OpenSSL.hs view
@@ -49,4 +49,32 @@                         (SSL.read ssl 32752)                         (SSL.write ssl)                         (N.close sock)+    , managerTlsProxyConnection = do+        ctx <- mkContext+        return $ \connstr checkConn serverName _ha host port -> do+            -- Copied/modified from openssl-streams+            let hints      = N.defaultHints+                                { N.addrFlags      = [N.AI_ADDRCONFIG, N.AI_NUMERICSERV]+                                , N.addrFamily     = N.AF_INET+                                , N.addrSocketType = N.Stream+                                }+            (addrInfo:_) <- N.getAddrInfo (Just hints) (Just host) (Just $ show port)++            let family     = N.addrFamily addrInfo+            let socketType = N.addrSocketType addrInfo+            let protocol   = N.addrProtocol addrInfo+            let address    = N.addrAddress addrInfo++            bracketOnError (N.socket family socketType protocol) (N.close)+                $ \sock -> do+                    N.connect sock address+                    conn <- socketConnection sock 32752+                    connectionWrite conn connstr+                    checkConn conn+                    ssl <- SSL.connection ctx sock+                    SSL.connect ssl+                    makeConnection+                        (SSL.read ssl 32752)+                        (SSL.write ssl)+                        (N.close sock)     }
http-client-openssl.cabal view
@@ -1,5 +1,5 @@ name:                http-client-openssl-version:             0.2.0.5+version:             0.2.1.0 synopsis:            http-client backend using the OpenSSL library. description:         Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/http-client>. homepage:            https://github.com/snoyberg/http-client@@ -12,6 +12,10 @@ cabal-version:       >=1.10 extra-source-files:  README.md ChangeLog.md +flag test-proxy+   description: Test with http-proxy+   default: False+ library   exposed-modules:     Network.HTTP.Client.OpenSSL   other-extensions:    ScopedTypeVariables@@ -27,6 +31,8 @@   hs-source-dirs:      test   default-language:    Haskell2010   ghc-options:         -threaded+  if flag(test-proxy)+    cpp-options: -DUSE_PROXY   build-depends:       base                      , hspec                      , http-client >= 0.4.30
test/Spec.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-} import Test.Hspec import Network.HTTP.Client import Network.HTTP.Client.OpenSSL@@ -13,3 +14,12 @@         withResponse (parseRequest_ "HEAD https://s3.amazonaws.com/hackage.fpcomplete.com/01-index.tar.gz") manager $ \res -> do             responseStatus res `shouldBe` status200             lookup "content-type" (responseHeaders res) `shouldBe` Just "application/x-gzip"+#ifdef USE_PROXY+    it "make a TLS connection with proxy" $ do+        manager <- newManager $ opensslManagerSettings SSL.context+        let req = addProxy "localhost" 8080 $+                  parseRequest_ "HEAD https://s3.amazonaws.com/hackage.fpcomplete.com/01-index.tar.gz"+        withResponse req manager $ \res -> do+            responseStatus res `shouldBe` status200+            lookup "content-type" (responseHeaders res) `shouldBe` Just "application/x-gzip"+#endif