pub struct ServerConf {
pub addr: SocketAddr,
pub transport: Transport,
pub request_timeout: Duration,
pub recv_size: usize,
pub udp_payload_size: u16,
}
Expand description
Configuration for one upstream DNS server.
The server is identified by a socket address, ie., an address/port pair. For each server you can set how it should operate on all supported transport protocols, including not at all, and two timeouts for each request and sockets. The timeouts are used for all transports. If you need different timeouts for, say, UDP and TCP, you can always use two server entries with the same address.
Fields§
§addr: SocketAddr
Server address.
transport: Transport
Transport protocol.
request_timeout: Duration
How long to wait for a response before returning a timeout error.
This field defaults to 2 seconds.
recv_size: usize
Size of the message receive buffer in bytes.
This is used for datagram transports only. It defaults to 1232 bytes for both IPv6 and IPv4.
(Note: While 1372 bytes works for IPv4 in most scenarios, there has been research indicating that sometimes 1232 bytes is the limit here, sometimes too.)
udp_payload_size: u16
Advertised UDP payload size.
This values will be announced in request if EDNS is supported by the server. It will be included both for datagram and streaming transport but really only matters for UDP.
Implementations§
source§impl ServerConf
impl ServerConf
sourcepub fn new(addr: SocketAddr, transport: Transport) -> Self
pub fn new(addr: SocketAddr, transport: Transport) -> Self
Returns a new default server config for a given address and transport.
The function sets default values as described in the field descriptions above.
Trait Implementations§
source§impl Clone for ServerConf
impl Clone for ServerConf
source§fn clone(&self) -> ServerConf
fn clone(&self) -> ServerConf
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more