http2-tls 0.2.5 → 0.2.6
raw patch · 5 files changed
+44/−8 lines, 5 filesdep ~bytestringPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bytestring
API changes (from Hackage documentation)
+ Network.HTTP2.TLS.Client: settingsSessionManager :: Settings -> SessionManager
+ Network.HTTP2.TLS.Client: settingsUseEarlyData :: Settings -> Bool
+ Network.HTTP2.TLS.Client: settingsWantSessionResume :: Settings -> Maybe (SessionID, SessionData)
+ Network.HTTP2.TLS.Server: settingsOpenServerSocket :: Settings -> AddrInfo -> IO Socket
Files
- Network/HTTP2/TLS/Client.hs +5/−1
- Network/HTTP2/TLS/Client/Settings.hs +13/−1
- Network/HTTP2/TLS/Server.hs +16/−3
- Network/HTTP2/TLS/Server/Settings.hs +7/−0
- http2-tls.cabal +3/−3
Network/HTTP2/TLS/Client.hs view
@@ -33,6 +33,9 @@ settingsConnectionWindowSize, settingsStreamWindowSize, settingsServerNameOverride,+ settingsSessionManager,+ settingsWantSessionResume,+ settingsUseEarlyData, ) where import Data.ByteString (ByteString)@@ -231,11 +234,12 @@ -- <https://datatracker.ietf.org/doc/html/rfc4366#section-3.1> (defaultParamsClient serverName (BS.C8.pack $ show port)) { clientSupported = supported- , clientWantSessionResume = Nothing+ , clientWantSessionResume = settingsWantSessionResume , clientUseServerNameIndication = True , clientShared = shared , clientHooks = hooks , clientDebug = debug+ , clientUseEarlyData = settingsUseEarlyData } where shared =
Network/HTTP2/TLS/Client/Settings.hs view
@@ -8,7 +8,7 @@ cacheLimit, defaultClientConfig, )-import Network.TLS (SessionManager, noSessionManager)+import Network.TLS (SessionData, SessionID, SessionManager, noSessionManager) -- Client settings type. data Settings = Settings@@ -59,6 +59,16 @@ -- 1048575 , settingsSessionManager :: SessionManager -- ^ TLS session manager (H2 and TLS)+ , settingsWantSessionResume :: Maybe (SessionID, SessionData)+ -- ^ Try to resume a TLS session (H2 and TLS)+ --+ -- >>> settingsWantSessionResume defaultSettings+ -- Nothing+ , settingsUseEarlyData :: Bool+ -- ^ Try to use 0-RTT (H2 and TLS)+ --+ -- >>> settingsUseEarlyData defaultSettings+ -- False } -- | Default settings.@@ -75,4 +85,6 @@ , settingsStreamWindowSize = defaultMaxStreamData , settingsConnectionWindowSize = defaultMaxData , settingsSessionManager = noSessionManager+ , settingsWantSessionResume = Nothing+ , settingsUseEarlyData = False }
Network/HTTP2/TLS/Server.hs view
@@ -24,6 +24,7 @@ settingsConnectionWindowSize, settingsStreamWindowSize, settingsSessionManager,+ settingsOpenServerSocket, -- * IO backend IOBackend,@@ -81,7 +82,11 @@ -> (T.Manager -> IOBackend -> IO a) -> IO a runTLS settings creds host port alpn action =- runTCPServer (settingsTimeout settings) (Just host) (show port) $ \mgr th sock -> do+ runTCPServerWithSocket+ (settingsOpenServerSocket settings)+ (settingsTimeout settings)+ (Just host)+ (show port) $ \mgr th sock -> do backend <- mkBackend settings sock E.bracket (contextNew backend params) bye $ \ctx -> do handshake ctx@@ -99,7 +104,11 @@ -- | Running an HTTP\/2 client over TCP. runH2C :: Settings -> HostName -> PortNumber -> Server -> IO () runH2C settings@Settings{..} host port server =- runTCPServer settingsTimeout (Just host) (show port) $ \mgr th sock -> do+ runTCPServerWithSocket+ settingsOpenServerSocket+ settingsTimeout+ (Just host)+ (show port) $ \mgr th sock -> do iobackend0 <- tcpIOBackend settings sock let iobackend = timeoutIOBackend th settings iobackend0 run' settings server mgr iobackend@@ -155,7 +164,11 @@ runIOH2C :: Settings -> HostName -> PortNumber -> (ServerIO -> IO (IO ())) -> IO () runIOH2C settings0@Settings{..} host port action =- runTCPServer settingsTimeout (Just host) (show port) $ \mgr th sock -> do+ runTCPServerWithSocket+ settingsOpenServerSocket+ settingsTimeout+ (Just host)+ (show port) $ \mgr th sock -> do iobackend0 <- tcpIOBackend settings0 sock let iobackend = timeoutIOBackend th settings0 iobackend0 runIO' settings0 action mgr iobackend
Network/HTTP2/TLS/Server/Settings.hs view
@@ -5,6 +5,8 @@ defaultServerConfig, numberOfWorkers, )+import Network.Run.TCP.Timeout+import Network.Socket import Network.TLS (SessionManager, noSessionManager) -- Server settings type.@@ -62,6 +64,10 @@ -- 1048575 , settingsSessionManager :: SessionManager -- ^ TLS session manager (H2 and TLS)+ , settingsOpenServerSocket :: AddrInfo -> IO Socket+ -- ^ Function to initialize the server socket+ --+ -- Defaults to 'openServerSocket' } -- | Default settings.@@ -79,4 +85,5 @@ , settingsStreamWindowSize = defaultMaxStreamData , settingsConnectionWindowSize = defaultMaxData , settingsSessionManager = noSessionManager+ , settingsOpenServerSocket = openServerSocket }
http2-tls.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name: http2-tls-version: 0.2.5+version: 0.2.6 license: BSD3 license-file: LICENSE maintainer: Kazu Yamamoto <kazu@iij.ad.jp>@@ -36,10 +36,10 @@ ghc-options: -Wall build-depends: base >=4.9 && <5,- bytestring >= 0.10 && < 0.12,+ bytestring >= 0.10 && < 0.13, http2 >=5.1 && < 5.2, data-default-class >= 0.1 && < 0.2,- network >= 3.1.4 && < 3.2,+ network >= 3.1.4, time-manager >= 0.0.1 && < 0.1, unliftio >= 0.2 && < 0.3, network-run >= 0.2.6 && < 0.3,