pub struct ClientConfig {
    pub alpn_protocols: Vec<Vec<u8>>,
    pub resumption: Resumption,
    pub max_fragment_size: Option<usize>,
    pub client_auth_cert_resolver: Arc<dyn ResolvesClientCert>,
    pub enable_sni: bool,
    pub key_log: Arc<dyn KeyLog>,
    pub enable_early_data: bool,
    /* private fields */
}Expand description
Common configuration for (typically) all connections made by a program.
Making one of these is cheap, though one of the inputs may be expensive: gathering trust roots
from the operating system to add to the RootCertStore passed to with_root_certificates()
(the rustls-native-certs crate is often used for this) may take on the order of a few hundred
milliseconds.
These must be created via the ClientConfig::builder() function.
§Defaults
ClientConfig::max_fragment_size: the default isNone: TLS packets are not fragmented to a specific size.ClientConfig::resumption: supports resumption with up to 256 server names, using session ids or tickets, with a max of eight tickets per server.ClientConfig::alpn_protocols: the default is empty – no ALPN protocol is negotiated.ClientConfig::key_log: key material is not logged.
Fields§
§alpn_protocols: Vec<Vec<u8>>Which ALPN protocols we include in our client hello. If empty, no ALPN extension is sent.
resumption: ResumptionHow and when the client can resume a previous session.
max_fragment_size: Option<usize>The maximum size of TLS message we’ll emit. If None, we don’t limit TLS message lengths except to the 2**16 limit specified in the standard.
rustls enforces an arbitrary minimum of 32 bytes for this field. Out of range values are reported as errors from ClientConnection::new.
Setting this value to the TCP MSS may improve latency for stream-y workloads.
client_auth_cert_resolver: Arc<dyn ResolvesClientCert>How to decide what client auth certificate/keys to use.
enable_sni: boolWhether to send the Server Name Indication (SNI) extension during the client handshake.
The default is true.
key_log: Arc<dyn KeyLog>How to output key material for debugging. The default does nothing.
enable_early_data: boolWhether to send data on the first flight (“early data”) in TLS 1.3 handshakes.
The default is false.
Implementations§
Source§impl ClientConfig
 
impl ClientConfig
Sourcepub fn builder() -> ConfigBuilder<Self, WantsCipherSuites>
 
pub fn builder() -> ConfigBuilder<Self, WantsCipherSuites>
Create a builder to build up the client configuration.
For more information, see the ConfigBuilder documentation.
Sourcepub fn dangerous(&mut self) -> DangerousClientConfig<'_>
 
pub fn dangerous(&mut self) -> DangerousClientConfig<'_>
Access configuration options whose use is dangerous and requires extra care.
Trait Implementations§
Source§impl Clone for ClientConfig
 
impl Clone for ClientConfig
Source§fn clone(&self) -> ClientConfig
 
fn clone(&self) -> ClientConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read more