[][src]Struct domain_resolv::stub::conf::ServerConf

pub struct ServerConf {
    pub addr: SocketAddr,
    pub transport: Transport,
    pub request_timeout: Duration,
    pub recv_size: usize,
    pub udp_payload_size: u16,
}

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

impl ServerConf[src]

pub fn new(addr: SocketAddr, transport: Transport) -> Self[src]

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

impl Clone for ServerConf[src]

impl Debug for ServerConf[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,