packages feed

warp 3.3.27 → 3.3.28

raw patch · 6 files changed

+36/−1 lines, 6 files

Files

ChangeLog.md view
@@ -1,5 +1,10 @@ # ChangeLog for warp +## 3.3.28++* Fix for the "-x509" flag+   [#935](https://github.com/yesodweb/wai/pull/935)+ ## 3.3.27  * Fixing busy loop due to eMFILE
Network/Wai/Handler/Warp.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE PatternGuards #-} {-# OPTIONS_GHC -fno-warn-deprecations #-}@@ -100,7 +101,9 @@   , pauseTimeout   , FileInfo(..)   , getFileInfo+#ifdef MIN_VERSION_crypton_x509   , clientCertificate+#endif   , withApplication   , withApplicationSettings   , testWithApplication@@ -129,7 +132,9 @@ import UnliftIO.Exception (SomeException, throwIO) import Data.Streaming.Network (HostPreference) import qualified Data.Vault.Lazy as Vault+#ifdef MIN_VERSION_crypton_x509 import Data.X509+#endif import qualified Network.HTTP.Types as H import Network.Socket (Socket, SockAddr) import Network.Wai (Request, Response, vault)@@ -534,8 +539,10 @@ getGracefulCloseTimeout2 :: Settings -> Int getGracefulCloseTimeout2 = settingsGracefulCloseTimeout2 +#ifdef MIN_VERSION_crypton_x509 -- | Getting information of client certificate. -- -- Since 3.3.5 clientCertificate :: Request -> Maybe CertificateChain clientCertificate = join . Vault.lookup getClientCertificateKey . vault+#endif
Network/Wai/Handler/Warp/HTTP2/Request.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE BangPatterns #-}+{-# LANGUAGE CPP #-}  module Network.Wai.Handler.Warp.HTTP2.Request (     toRequest@@ -23,7 +24,9 @@ import Network.Wai.Handler.Warp.HTTP2.Types import Network.Wai.Handler.Warp.Imports import Network.Wai.Handler.Warp.Request (getFileInfoKey, pauseTimeoutKey)+#ifdef MIN_VERSION_crypton_x509 import Network.Wai.Handler.Warp.Request (getClientCertificateKey)+#endif import qualified Network.Wai.Handler.Warp.Settings as S (Settings, settingsNoParsePath) import Network.Wai.Handler.Warp.Types @@ -87,7 +90,9 @@                 $ Vault.insert setHTTP2DataKey (writeIORef ref)                 $ Vault.insert modifyHTTP2DataKey (modifyIORef' ref)                 $ Vault.insert pauseTimeoutKey (T.pause th)+#ifdef MIN_VERSION_crypton_x509                 $ Vault.insert getClientCertificateKey (getTransportClientCertificate transport)+#endif                   Vault.empty  getHTTP2DataKey :: Vault.Key (IO (Maybe HTTP2Data))
Network/Wai/Handler/Warp/Request.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DeriveDataTypeable #-}@@ -8,7 +9,9 @@   , headerLines   , pauseTimeoutKey   , getFileInfoKey+#ifdef MIN_VERSION_crypton_x509   , getClientCertificateKey+#endif   , NoKeepAliveRequest (..)   ) where @@ -21,7 +24,9 @@ import qualified Data.IORef as I import Data.Typeable (Typeable) import qualified Data.Vault.Lazy as Vault+#ifdef MIN_VERSION_crypton_x509 import Data.X509+#endif import qualified Network.HTTP.Types as H import Network.Socket (SockAddr) import Network.Wai@@ -71,7 +76,9 @@         rawPath = if settingsNoParsePath settings then unparsedPath else path         vaultValue = Vault.insert pauseTimeoutKey (Timeout.pause th)                    $ Vault.insert getFileInfoKey (getFileInfo ii)+#ifdef MIN_VERSION_crypton_x509                    $ Vault.insert getClientCertificateKey (getTransportClientCertificate transport)+#endif                      Vault.empty     (rbody, remainingRef, bodyLength) <- bodyAndSource src cl te     -- body producing function which will produce '100-continue', if needed@@ -316,6 +323,8 @@ getFileInfoKey = unsafePerformIO Vault.newKey {-# NOINLINE getFileInfoKey #-} +#ifdef MIN_VERSION_crypton_x509 getClientCertificateKey :: Vault.Key (Maybe CertificateChain) getClientCertificateKey = unsafePerformIO Vault.newKey {-# NOINLINE getClientCertificateKey #-}+#endif
Network/Wai/Handler/Warp/Types.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE OverloadedStrings #-} @@ -7,7 +8,9 @@ import qualified Data.ByteString as S import Data.IORef (IORef, readIORef, writeIORef, newIORef) import Data.Typeable (Typeable)+#ifdef MIN_VERSION_crypton_x509 import Data.X509+#endif import Network.Socket.BufferPool import System.Posix.Types (Fd) import qualified System.TimeManager as T@@ -177,12 +180,16 @@                  , tlsMinorVersion :: Int                  , tlsNegotiatedProtocol :: Maybe ByteString -- ^ The result of Application Layer Protocol Negociation in RFC 7301                  , tlsChiperID :: Word16+#ifdef MIN_VERSION_crypton_x509                  , tlsClientCertificate :: Maybe CertificateChain+#endif                  }  -- ^ Encrypted channel: TLS or SSL                | QUIC {                    quicNegotiatedProtocol :: Maybe ByteString                  , quicChiperID :: Word16+#ifdef MIN_VERSION_crypton_x509                  , quicClientCertificate :: Maybe CertificateChain+#endif                  }  isTransportSecure :: Transport -> Bool@@ -193,7 +200,9 @@ isTransportQUIC QUIC{} = True isTransportQUIC _      = False +#ifdef MIN_VERSION_crypton_x509 getTransportClientCertificate :: Transport -> Maybe CertificateChain getTransportClientCertificate TCP              = Nothing getTransportClientCertificate (TLS _ _ _ _ cc) = cc getTransportClientCertificate (QUIC _ _ cc)    = cc+#endif
warp.cabal view
@@ -1,5 +1,5 @@ Name:                warp-Version:             3.3.27+Version:             3.3.28 Synopsis:            A fast, light-weight web server for WAI applications. License:             MIT License-file:        LICENSE