pub struct HickoryDnsResolver { /* private fields */ }Expand description
DNS resolver implementation using hickory-resolver.
Implementations§
Source§impl HickoryDnsResolver
impl HickoryDnsResolver
Sourcepub async fn new() -> Result<Self, DnsError>
pub async fn new() -> Result<Self, DnsError>
Create a new resolver with system configuration.
Regular queries use the default resolver. TLSA queries use a DNSSEC-validating resolver for security.
Sourcepub async fn with_preset(preset: DnsResolverConfig) -> Result<Self, DnsError>
pub async fn with_preset(preset: DnsResolverConfig) -> Result<Self, DnsError>
Create a resolver with a preset configuration (Cloudflare, Google, etc.).
For System, reads the OS DNS configuration. This uses the actual
nameservers configured on the machine (not hardcoded Google DNS).
Sourcepub async fn with_nameservers(
nameservers: &[Ipv4Addr],
) -> Result<Self, DnsError>
pub async fn with_nameservers( nameservers: &[Ipv4Addr], ) -> Result<Self, DnsError>
Create a resolver with custom nameserver IP addresses.
§Example
use ans_verify::HickoryDnsResolver;
use std::net::Ipv4Addr;
// Use custom nameservers
let resolver = HickoryDnsResolver::with_nameservers(&[
Ipv4Addr::new(1, 1, 1, 1),
Ipv4Addr::new(8, 8, 8, 8),
]).await?;Sourcepub async fn with_config(
config: ResolverConfig,
opts: ResolverOpts,
) -> Result<Self, DnsError>
pub async fn with_config( config: ResolverConfig, opts: ResolverOpts, ) -> Result<Self, DnsError>
Create a new resolver with custom configuration.
Sourcepub async fn with_dnssec() -> Result<Self, DnsError>
pub async fn with_dnssec() -> Result<Self, DnsError>
Create a resolver with DNSSEC validation enabled for all queries.
Trait Implementations§
Source§impl Debug for HickoryDnsResolver
impl Debug for HickoryDnsResolver
Source§impl DnsResolver for HickoryDnsResolver
impl DnsResolver for HickoryDnsResolver
Source§fn lookup_badge<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
) -> Pin<Box<dyn Future<Output = Result<DnsLookupResult<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn lookup_badge<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
) -> Pin<Box<dyn Future<Output = Result<DnsLookupResult<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Query badge TXT records for an FQDN. Read more
Source§fn lookup_tlsa<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
port: u16,
) -> Pin<Box<dyn Future<Output = Result<DnsLookupResult<TlsaRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn lookup_tlsa<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
port: u16,
) -> Pin<Box<dyn Future<Output = Result<DnsLookupResult<TlsaRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Query TLSA records for an FQDN and port. Read more
Source§fn get_badge_records<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
) -> Pin<Box<dyn Future<Output = Result<Vec<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_badge_records<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
) -> Pin<Box<dyn Future<Output = Result<Vec<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Query all badge records and return them.
Convenience method that unwraps the result.
Source§fn get_tlsa_records<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
port: u16,
) -> Pin<Box<dyn Future<Output = Result<Vec<TlsaRecord>, DaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_tlsa_records<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
port: u16,
) -> Pin<Box<dyn Future<Output = Result<Vec<TlsaRecord>, DaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get TLSA records, returning empty vec if not found.
Source§fn find_badge_for_version<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
version: &'life2 Version,
) -> Pin<Box<dyn Future<Output = Result<Option<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn find_badge_for_version<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
version: &'life2 Version,
) -> Pin<Box<dyn Future<Output = Result<Option<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Find the badge record matching a specific version.
Source§fn find_preferred_badge<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
) -> Pin<Box<dyn Future<Output = Result<Option<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn find_preferred_badge<'life0, 'life1, 'async_trait>(
&'life0 self,
fqdn: &'life1 Fqdn,
) -> Pin<Box<dyn Future<Output = Result<Option<BadgeRecord>, DnsError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Find the first ACTIVE badge (or any if none specified as active).
During version changes, prefer newer versions.
Auto Trait Implementations§
impl Freeze for HickoryDnsResolver
impl !RefUnwindSafe for HickoryDnsResolver
impl Send for HickoryDnsResolver
impl Sync for HickoryDnsResolver
impl Unpin for HickoryDnsResolver
impl UnsafeUnpin for HickoryDnsResolver
impl !UnwindSafe for HickoryDnsResolver
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more