packages feed

warp-tls 3.0.0 → 3.0.0.1

raw patch · 2 files changed

+13/−6 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

Network/Wai/Handler/WarpTLS.hs view
@@ -2,6 +2,7 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE PatternGuards #-}  -- | HTTP over SSL/TLS support for Warp via the TLS package. @@ -29,7 +30,7 @@ import Network.Wai (Application) import Network.Socket (Socket, sClose, withSocketsDo) import qualified Data.ByteString.Lazy as L-import Control.Exception (bracket, finally, handle)+import Control.Exception (bracket, finally, handle, fromException, try, IOException) import qualified Network.TLS.Extra as TLSExtra import qualified Data.ByteString as B import Data.Streaming.Network (bindPortTCP, acceptSafe, safeRecv)@@ -41,9 +42,10 @@ import qualified Crypto.Random.AESCtr import Network.Wai.Handler.Warp.Buffer (allocateBuffer, bufferSize, freeBuffer) import Network.Socket.ByteString (sendAll)-import Control.Monad (unless)+import Control.Monad (unless, void) import Data.ByteString.Lazy.Internal (defaultChunkSize) import qualified System.IO as IO+import System.IO.Error (isEOFError)  data TLSSettings = TLSSettings     { certFile :: FilePath@@ -172,11 +174,13 @@                             , connClose =                                 freeBuffer readBuf `finally`                                 freeBuffer writeBuf `finally`-                                TLS.bye ctx `finally`+                                void (tryIO $ TLS.bye ctx) `finally`                                 TLS.contextClose ctx                             , connRecv =-                                let onEOF TLS.Error_EOF = return B.empty-                                    onEOF e = throwIO e+                                let onEOF e+                                        | Just TLS.Error_EOF <- fromException e = return B.empty+                                        | Just ioe <- fromException e, isEOFError ioe = return B.empty+                                        | otherwise = throwIO e                                     go = do                                         x <- TLS.recvData ctx                                         if B.null x@@ -223,3 +227,6 @@     , TLSExtra.cipher_RC4_128_MD5     , TLSExtra.cipher_RC4_128_SHA1     ]++tryIO :: IO a -> IO (Either IOException a)+tryIO = try
warp-tls.cabal view
@@ -1,5 +1,5 @@ Name:                warp-tls-Version:             3.0.0+Version:             3.0.0.1 Synopsis:            HTTP over SSL/TLS support for Warp via the TLS package License:             MIT License-file:        LICENSE