Struct domain::resolv::stub::conf::ServerConf

source ·
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

source

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

source§

fn clone(&self) -> ServerConf

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ServerConf

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<Source, Target> OctetsInto<Target> for Source
where Target: OctetsFrom<Source>,

§

type Error = <Target as OctetsFrom<Source>>::Error

source§

fn try_octets_into( self, ) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
source§

fn octets_into(self) -> Target
where Self::Error: Into<Infallible>,

Performs an infallible conversion.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

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

source§

fn vzip(self) -> V