pub trait Peer: Display + Clone {
Show 24 methods
// Required methods
fn address(&self) -> &SocketAddr;
fn tls(&self) -> bool;
fn sni(&self) -> &str;
fn reuse_hash(&self) -> u64;
// Provided methods
fn get_proxy(&self) -> Option<&Proxy> { ... }
fn get_peer_options(&self) -> Option<&PeerOptions> { ... }
fn get_mut_peer_options(&mut self) -> Option<&mut PeerOptions> { ... }
fn verify_cert(&self) -> bool { ... }
fn verify_hostname(&self) -> bool { ... }
fn alternative_cn(&self) -> Option<&String> { ... }
fn bind_to(&self) -> Option<&BindTo> { ... }
fn connection_timeout(&self) -> Option<Duration> { ... }
fn total_connection_timeout(&self) -> Option<Duration> { ... }
fn idle_timeout(&self) -> Option<Duration> { ... }
fn get_alpn(&self) -> Option<&ALPN> { ... }
fn get_ca(&self) -> Option<&Arc<CaType>> { ... }
fn get_client_cert_key(&self) -> Option<&Arc<CertKey>> { ... }
fn tcp_keepalive(&self) -> Option<&TcpKeepalive> { ... }
fn h2_ping_interval(&self) -> Option<Duration> { ... }
fn tcp_recv_buf(&self) -> Option<usize> { ... }
fn dscp(&self) -> Option<u8> { ... }
fn tcp_fast_open(&self) -> bool { ... }
fn matches_fd<V: AsRawFd>(&self, fd: V) -> bool { ... }
fn get_tracer(&self) -> Option<Tracer> { ... }
}
Expand description
Peer
defines the interface to communicate with the crate::connectors
regarding where to
connect to and how to connect to it.
Required Methods§
Sourcefn address(&self) -> &SocketAddr
fn address(&self) -> &SocketAddr
The remote address to connect to
Sourcefn reuse_hash(&self) -> u64
fn reuse_hash(&self) -> u64
Provided Methods§
Sourcefn get_peer_options(&self) -> Option<&PeerOptions>
fn get_peer_options(&self) -> Option<&PeerOptions>
Get the additional options to connect to the peer.
See PeerOptions
for more details
Sourcefn get_mut_peer_options(&mut self) -> Option<&mut PeerOptions>
fn get_mut_peer_options(&mut self) -> Option<&mut PeerOptions>
Get the additional options for modification.
Sourcefn verify_cert(&self) -> bool
fn verify_cert(&self) -> bool
Whether the TLS handshake should validate the cert of the server.
Sourcefn verify_hostname(&self) -> bool
fn verify_hostname(&self) -> bool
Whether the TLS handshake should verify that the server cert matches the SNI.
Sourcefn alternative_cn(&self) -> Option<&String>
fn alternative_cn(&self) -> Option<&String>
The alternative common name to use to verify the server cert.
If the server cert doesn’t match the SNI, this name will be used to verify the cert.
Sourcefn bind_to(&self) -> Option<&BindTo>
fn bind_to(&self) -> Option<&BindTo>
Information about the local source address this connection should be bound to.
Sourcefn connection_timeout(&self) -> Option<Duration>
fn connection_timeout(&self) -> Option<Duration>
How long connect() call should be wait before it returns a timeout error.
Sourcefn total_connection_timeout(&self) -> Option<Duration>
fn total_connection_timeout(&self) -> Option<Duration>
How long the overall connection establishment should take before a timeout error is returned.
Sourcefn idle_timeout(&self) -> Option<Duration>
fn idle_timeout(&self) -> Option<Duration>
If the connection can be reused, how long the connection should wait to be reused before it shuts down.
Sourcefn get_ca(&self) -> Option<&Arc<CaType>>
fn get_ca(&self) -> Option<&Arc<CaType>>
Get the CA cert to use to validate the server cert.
If not set, the default CAs will be used.
Sourcefn get_client_cert_key(&self) -> Option<&Arc<CertKey>>
fn get_client_cert_key(&self) -> Option<&Arc<CertKey>>
Get the client cert and key for mutual TLS if any
Sourcefn tcp_keepalive(&self) -> Option<&TcpKeepalive>
fn tcp_keepalive(&self) -> Option<&TcpKeepalive>
The TCP keepalive setting that should be applied to this connection
Sourcefn h2_ping_interval(&self) -> Option<Duration>
fn h2_ping_interval(&self) -> Option<Duration>
The interval H2 pings to send to the server if any
Sourcefn tcp_recv_buf(&self) -> Option<usize>
fn tcp_recv_buf(&self) -> Option<usize>
The size of the TCP receive buffer should be limited to. See SO_RCVBUF for more details.
Sourcefn dscp(&self) -> Option<u8>
fn dscp(&self) -> Option<u8>
The DSCP value that should be applied to the send side of this connection. See the RFC for more details.
Sourcefn tcp_fast_open(&self) -> bool
fn tcp_fast_open(&self) -> bool
Whether to enable TCP fast open.
fn matches_fd<V: AsRawFd>(&self, fd: V) -> bool
fn get_tracer(&self) -> Option<Tracer>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.