http2-tls-0.1.0: Library for HTTP/2 over TLS
Safe HaskellSafe-Inferred
LanguageHaskell2010

Network.HTTP2.TLS.Client

Description

Running an HTTP/2 client over TLS.

Synopsis

Runners

run :: Settings -> HostName -> PortNumber -> Client a -> IO a Source #

Running an HTTP/2 client over TLS (over TCP).

runH2C :: HostName -> PortNumber -> Client a -> IO a Source #

Running an HTTP/2 client over TCP.

type Client a = (forall b. Request -> (Response -> IO b) -> IO b) -> IO a #

Client type.

type HostName = String #

Either a host name e.g., "haskell.org" or a numeric host address string consisting of a dotted decimal IPv4 address or an IPv6 address e.g., "192.168.0.1".

data PortNumber #

Port number. Use the Num instance (i.e. use a literal) to create a PortNumber value.

>>> 1 :: PortNumber
1
>>> read "1" :: PortNumber
1
>>> show (12345 :: PortNumber)
"12345"
>>> 50000 < (51000 :: PortNumber)
True
>>> 50000 < (52000 :: PortNumber)
True
>>> 50000 + (10000 :: PortNumber)
60000

Instances

Instances details
Storable PortNumber 
Instance details

Defined in Network.Socket.Types

Bounded PortNumber 
Instance details

Defined in Network.Socket.Types

Enum PortNumber 
Instance details

Defined in Network.Socket.Types

Num PortNumber 
Instance details

Defined in Network.Socket.Types

Read PortNumber 
Instance details

Defined in Network.Socket.Types

Integral PortNumber 
Instance details

Defined in Network.Socket.Types

Real PortNumber 
Instance details

Defined in Network.Socket.Types

Show PortNumber 
Instance details

Defined in Network.Socket.Types

Eq PortNumber 
Instance details

Defined in Network.Socket.Types

Ord PortNumber 
Instance details

Defined in Network.Socket.Types

runTLS Source #

Arguments

:: Settings 
-> HostName 
-> PortNumber 
-> ByteString

ALPN

-> (Context -> SockAddr -> SockAddr -> IO a) 
-> IO a 

Running a TLS client.

Settings

defaultSettings :: Settings Source #

Default settings.

settingsKeyLogger :: Settings -> String -> IO () Source #

Key logger

Applications may wish to set this depending on the SSLKEYLOGFILE environment variable. Default is do nothing.

settingsValidateCert :: Settings -> Bool Source #

Should we validate TLS certificates?

>>> settingsValidateCert defaultSettings
True

settingsCAStore :: Settings -> CertificateStore Source #

Certificate store used for validation. The default is mempty.

settingsAddrInfoFlags :: Settings -> [AddrInfoFlag] Source #

Flags that control the querying behaviour of getAddrInfo.

>>> settingsAddrInfoFlags defaultSettings
[]