pub struct Resolver { /* private fields */ }
Expand description

An asynchronous DNS resolver, which returns results via callbacks.

Note that dropping the resolver will cause all outstanding requests to fail with result c_ares::Error::EDESTRUCTION.

Implementations§

source§

impl Resolver

source

pub fn new() -> Result<Self, Error>

Create a new Resolver, using default Options.

source

pub fn with_options(options: Options) -> Result<Self, Error>

Create a new Resolver, with the given Options.

source

pub fn set_servers(&self, servers: &[&str]) -> Result<&Self>

Set the list of servers to contact, instead of the servers specified in resolv.conf or the local named.

String format is host[:port]. IPv6 addresses with ports require square brackets eg [2001:4860:4860::8888]:53.

source

pub fn set_local_ipv4(&self, ipv4: Ipv4Addr) -> &Self

Set the local IPv4 address from which to make queries.

source

pub fn set_local_ipv6(&self, ipv6: &Ipv6Addr) -> &Self

Set the local IPv6 address from which to make queries.

source

pub fn set_local_device(&self, device: &str) -> &Self

Set the local device from which to make queries.

source

pub fn set_sortlist(&self, sortlist: &[&str]) -> Result<&Self>

Initializes an address sortlist configuration, so that addresses returned by get_host_by_name() are sorted according to the sortlist.

Each element of the sortlist holds an IP-address/netmask pair. The netmask is optional but follows the address after a slash if present. For example: “130.155.160.0/255.255.240.0”, or “130.155.0.0”.

source

pub fn query_a<F>(&self, name: &str, handler: F)where F: FnOnce(Result<AResults>) + Send + 'static,

Look up the A records associated with name.

On completion, handler is called with the result.

source

pub fn search_a<F>(&self, name: &str, handler: F)where F: FnOnce(Result<AResults>) + Send + 'static,

Search for the A records associated with name.

On completion, handler is called with the result.

source

pub fn query_aaaa<F>(&self, name: &str, handler: F)where F: FnOnce(Result<AAAAResults>) + Send + 'static,

Look up the AAAA records associated with name.

On completion, handler is called with the result.

source

pub fn search_aaaa<F>(&self, name: &str, handler: F)where F: FnOnce(Result<AAAAResults>) + Send + 'static,

Search for the AAAA records associated with name.

On completion, handler is called with the result.

source

pub fn query_caa<F>(&self, name: &str, handler: F)where F: FnOnce(Result<CAAResults>) + Send + 'static,

Look up the CAA records associated with name.

On completion, handler is called with the result.

source

pub fn search_caa<F>(&self, name: &str, handler: F)where F: FnOnce(Result<CAAResults>) + Send + 'static,

Search for the CAA records associated with name.

On completion, handler is called with the result.

source

pub fn query_cname<F>(&self, name: &str, handler: F)where F: FnOnce(Result<CNameResults>) + Send + 'static,

Look up the CNAME records associated with name.

On completion, handler is called with the result.

source

pub fn search_cname<F>(&self, name: &str, handler: F)where F: FnOnce(Result<CNameResults>) + Send + 'static,

Search for the CNAME records associated with name.

On completion, handler is called with the result.

source

pub fn query_mx<F>(&self, name: &str, handler: F)where F: FnOnce(Result<MXResults>) + Send + 'static,

Look up the MX records associated with name.

On completion, handler is called with the result.

source

pub fn search_mx<F>(&self, name: &str, handler: F)where F: FnOnce(Result<MXResults>) + Send + 'static,

Search for the MX records associated with name.

On completion, handler is called with the result.

source

pub fn query_naptr<F>(&self, name: &str, handler: F)where F: FnOnce(Result<NAPTRResults>) + Send + 'static,

Look up the NAPTR records associated with name.

On completion, handler is called with the result.

source

pub fn search_naptr<F>(&self, name: &str, handler: F)where F: FnOnce(Result<NAPTRResults>) + Send + 'static,

Search for the NAPTR records associated with name.

On completion, handler is called with the result.

source

pub fn query_ns<F>(&self, name: &str, handler: F)where F: FnOnce(Result<NSResults>) + Send + 'static,

Look up the NS records associated with name.

On completion, handler is called with the result.

source

pub fn search_ns<F>(&self, name: &str, handler: F)where F: FnOnce(Result<NSResults>) + Send + 'static,

Search for the NS records associated with name.

On completion, handler is called with the result.

source

pub fn query_ptr<F>(&self, name: &str, handler: F)where F: FnOnce(Result<PTRResults>) + Send + 'static,

Look up the PTR records associated with name.

On completion, handler is called with the result.

source

pub fn search_ptr<F>(&self, name: &str, handler: F)where F: FnOnce(Result<PTRResults>) + Send + 'static,

Search for the PTR records associated with name.

On completion, handler is called with the result.

source

pub fn query_soa<F>(&self, name: &str, handler: F)where F: FnOnce(Result<SOAResult>) + Send + 'static,

Look up the SOA record associated with name.

On completion, handler is called with the result.

source

pub fn search_soa<F>(&self, name: &str, handler: F)where F: FnOnce(Result<SOAResult>) + Send + 'static,

Search for the SOA record associated with name.

On completion, handler is called with the result.

source

pub fn query_srv<F>(&self, name: &str, handler: F)where F: FnOnce(Result<SRVResults>) + Send + 'static,

Look up the SRV records associated with name.

On completion, handler is called with the result.

source

pub fn search_srv<F>(&self, name: &str, handler: F)where F: FnOnce(Result<SRVResults>) + Send + 'static,

Search for the SRV records associated with name.

On completion, handler is called with the result.

source

pub fn query_txt<F>(&self, name: &str, handler: F)where F: FnOnce(Result<TXTResults>) + Send + 'static,

Look up the TXT records associated with name.

On completion, handler is called with the result.

source

pub fn search_txt<F>(&self, name: &str, handler: F)where F: FnOnce(Result<TXTResults>) + Send + 'static,

Search for the TXT records associated with name.

On completion, handler is called with the result.

source

pub fn query_uri<F>(&self, name: &str, handler: F)where F: FnOnce(Result<URIResults>) + Send + 'static,

Look up the URI records associated with name.

On completion, handler is called with the result.

source

pub fn search_uri<F>(&self, name: &str, handler: F)where F: FnOnce(Result<URIResults>) + Send + 'static,

Search for the URI records associated with name.

On completion, handler is called with the result.

source

pub fn get_host_by_address<F>(&self, address: &IpAddr, handler: F)where F: FnOnce(Result<HostResults<'_>>) + Send + 'static,

Perform a host query by address.

On completion, handler is called with the result.

source

pub fn get_host_by_name<F>(&self, name: &str, family: AddressFamily, handler: F)where F: FnOnce(Result<HostResults<'_>>) + Send + 'static,

Perform a host query by name.

On completion, handler is called with the result.

source

pub fn get_name_info<F>(&self, address: &SocketAddr, flags: NIFlags, handler: F)where F: FnOnce(Result<NameInfoResult<'_>>) + Send + 'static,

Address-to-nodename translation in protocol-independent manner.

On completion, handler is called with the result.

source

pub fn query<F>(&self, name: &str, dns_class: u16, query_type: u16, handler: F)where F: FnOnce(Result<&[u8]>) + Send + 'static,

Initiate a single-question DNS query for name. The class and type of the query are per the provided parameters, taking values as defined in arpa/nameser.h.

On completion, handler is called with the result.

This method is provided so that users can query DNS types for which c-ares does not provide a parser; or in case a third-party parser is preferred. Usually, if a suitable query_xxx() is available, that should be used.

source

pub fn search<F>(&self, name: &str, dns_class: u16, query_type: u16, handler: F)where F: FnOnce(Result<&[u8]>) + Send + 'static,

Initiate a series of single-question DNS queries for name. The class and type of the query are per the provided parameters, taking values as defined in arpa/nameser.h.

On completion, handler is called with the result.

This method is provided so that users can search DNS types for which c-ares does not provide a parser; or in case a third-party parser is preferred. Usually, if a suitable search_xxx() is available, that should be used.

source

pub fn cancel(&self)

Cancel all requests made on this Resolver.

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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<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<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more