Struct domain::resolv::stub::conf::ResolvConf

source ·
pub struct ResolvConf {
    pub servers: Vec<ServerConf>,
    pub options: ResolvOptions,
}
Expand description

Resolver configuration.

This type collects all information necessary to configure how a stub resolver talks to its upstream resolvers.

The type follows the builder pattern. After creating a value with ResolvConf::new() you can manipulate the members. Once you are happy with them, you call finalize() to make sure the configuration is valid. It mostly just fixes the servers.

Additionally, the type can parse a glibc-style configuration file, commonly known as /etc/resolv.conf through the parse() and parse_file() methods. You still need to call finalize() after parsing.

The easiest way, however, to get the system resolver configuration is through ResolvConf::system_default(). This will parse the configuration file or return a default configuration if that fails.

Fields§

§servers: Vec<ServerConf>

Addresses of servers to query.

§options: ResolvOptions

Default options.

Implementations§

source§

impl ResolvConf

§Management

source

pub fn new() -> Self

Creates a new, empty configuration.

Using an empty configuration will fail since it does not contain any name servers. Call self.finalize() to make it usable.

source

pub fn finalize(&mut self)

Finalizes the configuration for actual use.

The function does two things. If servers is empty, it adds 127.0.0.1:53. This is exactly what glibc does. If search is empty, it adds the root domain ".". This differs from what glibc does which considers the machine’s host name.

source§

impl ResolvConf

§Parsing Configuration File

source

pub fn parse_file<P: AsRef<Path>>(&mut self, path: P) -> Result<(), Error>

Parses the configuration from a file.

source

pub fn parse<R: Read>(&mut self, reader: &mut R) -> Result<(), Error>

Parses the configuration from a reader.

The format is that of the /etc/resolv.conf file.

Trait Implementations§

source§

impl Clone for ResolvConf

source§

fn clone(&self) -> ResolvConf

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 ResolvConf

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for ResolvConf

source§

fn default() -> Self

Creates a default configuration for this system.

XXX This currently only works for Unix-y systems.

source§

impl Display for ResolvConf

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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. 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