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

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

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 Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Sourcewhere 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) -> Targetwhere Self::Error: Into<Infallible>,

Performs an infallible conversion.
source§

impl<T> ToOwned for Twhere 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 Twhere 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 Twhere 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 Twhere 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 Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V