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 +12/−5
- warp-tls.cabal +1/−1
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