packages feed

http2-tls 0.2.1 → 0.2.2

raw patch · 3 files changed

+30/−16 lines, 3 filesdep ~http2PVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: http2

API changes (from Hackage documentation)

+ Network.HTTP2.TLS.Client: defaultAuthority :: HostName -> Authority
+ Network.HTTP2.TLS.Client: type Authority = String
- Network.HTTP2.TLS.Client: defaultClientConfig :: Settings -> HostName -> ClientConfig
+ Network.HTTP2.TLS.Client: defaultClientConfig :: Settings -> Authority -> ClientConfig

Files

Network/HTTP2/TLS/Client.hs view
@@ -9,12 +9,14 @@     runH2C,     Client,     HostName,+    Authority,     PortNumber,     runTLS,      -- ** Generalized API     ClientConfig,     defaultClientConfig,+    defaultAuthority,     runWithConfig,     runH2CWithConfig,     runTLSWithConfig,@@ -34,12 +36,10 @@  import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as BS.C8-import qualified Data.ByteString.Char8 as C8-import qualified Data.ByteString.UTF8 as BS.UTF8 import Data.Default.Class (def) import Data.Maybe (fromMaybe) import Data.X509.Validation (validateDefault)-import Network.HTTP2.Client (Client, ClientConfig)+import Network.HTTP2.Client (Client, ClientConfig, Authority) import qualified Network.HTTP2.Client as H2Client import Network.Socket import Network.TLS hiding (HostName)@@ -58,7 +58,7 @@ run :: Settings -> HostName -> PortNumber -> Client a -> IO a run settings serverName port client =     runWithConfig-        (defaultClientConfig settings serverName)+        (defaultClientConfig settings $ defaultAuthority serverName)         settings         serverName         port@@ -74,7 +74,7 @@     -> IO a runTLS settings serverName port alpn action =     runTLSWithConfig-        (defaultClientConfig settings serverName)+        (defaultClientConfig settings $ defaultAuthority serverName)         settings         serverName         port@@ -84,7 +84,7 @@ runH2C :: Settings -> HostName -> PortNumber -> Client a -> IO a runH2C settings serverName port client =     runH2CWithConfig-        (defaultClientConfig settings serverName)+        (defaultClientConfig settings $ defaultAuthority serverName)         serverName         port         client@@ -164,13 +164,12 @@  defaultClientConfig     :: Settings-    -> HostName-    -- ^ Authority+    -> Authority     -> ClientConfig-defaultClientConfig Settings{..} serverName =+defaultClientConfig Settings{..} auth =     H2Client.defaultClientConfig         { H2Client.scheme = "https"-        , H2Client.authority = C8.pack serverName+        , H2Client.authority = auth         , H2Client.cacheLimit = settingsCacheLimit         , H2Client.connectionWindowSize = settingsConnectionWindowSize         , H2Client.settings =@@ -180,6 +179,22 @@                 }         } +-- | Default authority+--+-- When we connect to a server, we can distinguish between three names, all of+-- which may be different:+--+-- 1. The 'HostName', used for the DNS lookup to get the server's IP+-- 2. The HTTP2 @:authority@ pseudo-header+-- 3. The TLS SNI (Server Name Indicator).+--    This is different from (2) only in exceptional circumstances, see+--    'settingsServerNameOverride'.+--+-- In /most/ cases, however, all three names are identical, and so the default+-- 'Authority' is simply equal to the 'ServerName'.+defaultAuthority :: HostName -> Authority+defaultAuthority = id+ openTCP :: [AddrInfoFlag] -> HostName -> PortNumber -> IO Socket openTCP flags h p = do     ai <- makeAddrInfo flags h p@@ -201,7 +216,7 @@  getClientParams     :: Settings-    -> ByteString+    -> HostName     -- ^ Server name (for TLS SNI)     -> PortNumber     -- ^ Port number@@ -213,7 +228,7 @@ getClientParams Settings{..} serverName port alpn =     -- RFC 4366 mandates UTF-8 for SNI     -- <https://datatracker.ietf.org/doc/html/rfc4366#section-3.1>-    (defaultParamsClient (BS.UTF8.toString serverName) (BS.C8.pack $ show port))+    (defaultParamsClient serverName (BS.C8.pack $ show port))         { clientSupported = supported         , clientWantSessionResume = Nothing         , clientUseServerNameIndication = True
Network/HTTP2/TLS/Client/Settings.hs view
@@ -1,6 +1,5 @@ module Network.HTTP2.TLS.Client.Settings where -import Data.ByteString (ByteString) import Data.X509.CertificateStore (CertificateStore) import Network.Socket @@ -23,7 +22,7 @@     -- True     , settingsCAStore :: CertificateStore     -- ^ Certificate store used for validation. The default is 'mempty'. (TLS and H2)-    , settingsServerNameOverride :: Maybe ByteString+    , settingsServerNameOverride :: Maybe HostName     -- ^ Server name override     --     -- By default, the server name (for TLS SNI) is set based on the
http2-tls.cabal view
@@ -1,6 +1,6 @@ cabal-version: >=1.10 name:          http2-tls-version:       0.2.1+version:       0.2.2 license:       BSD3 license-file:  LICENSE maintainer:    Kazu Yamamoto <kazu@iij.ad.jp>@@ -37,7 +37,7 @@     build-depends:         base >=4.9 && <5,         bytestring >= 0.10 && < 0.12,-        http2 >=5.0 && < 5.1,+        http2 >=5.1 && < 5.2,         data-default-class >= 0.1 && < 0.2,         network >= 3.1.4 && < 3.2,         time-manager >= 0.0.1 && < 0.1,