network-conduit-tls 0.6.0 → 0.6.0.1
raw patch · 2 files changed
+32/−3 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Data/Conduit/Network/TLS.hs +31/−2
- network-conduit-tls.cabal +1/−1
Data/Conduit/Network/TLS.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE CPP #-} module Data.Conduit.Network.TLS ( TLSConfig , tlsConfig@@ -30,7 +31,7 @@ import qualified Data.Conduit.List as CL import Data.Either (rights) import Network.Socket (sClose, getSocketName)-import Network.Socket.ByteString (recv)+import Network.Socket.ByteString (recv, sendAll) import Control.Exception (bracket, finally) import Control.Concurrent (forkIO) import Control.Monad.Trans.Class (lift)@@ -63,6 +64,22 @@ where handle socket addr mlocal = do gen <- newGenIO+#if MIN_VERSION_tls(1, 0, 0)+ ctx <- TLS.contextNew+ TLS.Backend+ { TLS.backendFlush = return ()+ , TLS.backendClose = return ()+ , TLS.backendSend = \bs -> do+ print bs+ sendAll socket bs+ , TLS.backendRecv = \i -> do+ bs <- recv socket i+ print bs+ return bs+ }+ params+ (gen :: SystemRandom)+#else ctx <- TLS.serverWith params (gen :: SystemRandom)@@ -70,6 +87,7 @@ (return ()) -- flush (\bs -> yield bs $$ sinkSocket socket) (recv socket)+#endif TLS.handshake ctx @@ -85,12 +103,23 @@ app ad `finally` sClose socket - params = TLS.defaultParams+ params =+#if MIN_VERSION_tls(1, 0, 0)+ TLS.updateServerParams+ (\sp -> sp { TLS.serverWantClientCert = False }) $+ TLS.defaultParamsServer+ { TLS.pAllowedVersions = [TLS.SSL3,TLS.TLS10,TLS.TLS11,TLS.TLS12]+ , TLS.pCiphers = ciphers+ , TLS.pCertificates = zip certs $ Just key : repeat Nothing+ }+#else+ TLS.defaultParams { TLS.pWantClientCert = False , TLS.pAllowedVersions = [TLS.SSL3,TLS.TLS10,TLS.TLS11,TLS.TLS12] , TLS.pCiphers = ciphers , TLS.pCertificates = zip certs $ Just key : repeat Nothing }+#endif -- taken from stunnel example in tls-extra ciphers :: [TLS.Cipher]
network-conduit-tls.cabal view
@@ -1,5 +1,5 @@ name: network-conduit-tls-version: 0.6.0+version: 0.6.0.1 synopsis: Create TLS-aware network code with conduits description: Uses the tls package for a pure-Haskell implementation. homepage: https://github.com/snoyberg/conduit