Struct libp2p::dns::ResolverConfig
source · pub struct ResolverConfig { /* private fields */ }
Expand description
Configuration for the upstream nameservers to use for resolution
Implementations§
source§impl ResolverConfig
impl ResolverConfig
sourcepub fn new() -> ResolverConfig
pub fn new() -> ResolverConfig
Creates a new empty configuration
sourcepub fn google() -> ResolverConfig
pub fn google() -> ResolverConfig
Creates a default configuration, using 8.8.8.8
, 8.8.4.4
and 2001:4860:4860::8888
, 2001:4860:4860::8844
(thank you, Google).
Please see Google’s privacy statement for important information about what they track, many ISP’s track similar information in DNS. To use the system configuration see: Resolver::from_system_conf
and AsyncResolver::from_system_conf
NameServerConfigGroups can be combined to use a set of different providers, see NameServerConfigGroup
and ResolverConfig::from_parts
sourcepub fn cloudflare() -> ResolverConfig
pub fn cloudflare() -> ResolverConfig
Creates a default configuration, using 1.1.1.1
, 1.0.0.1
and 2606:4700:4700::1111
, 2606:4700:4700::1001
(thank you, Cloudflare).
Please see: https://www.cloudflare.com/dns/
NameServerConfigGroups can be combined to use a set of different providers, see NameServerConfigGroup
and ResolverConfig::from_parts
sourcepub fn quad9() -> ResolverConfig
pub fn quad9() -> ResolverConfig
Creates a configuration, using 9.9.9.9
, 149.112.112.112
and 2620:fe::fe
, 2620:fe::fe:9
, the “secure” variants of the quad9 settings (thank you, Quad9).
Please see: https://www.quad9.net/faq/
NameServerConfigGroups can be combined to use a set of different providers, see NameServerConfigGroup
and ResolverConfig::from_parts
sourcepub fn from_parts<G>(
domain: Option<Name>,
search: Vec<Name, Global>,
name_servers: G
) -> ResolverConfigwhere
G: Into<NameServerConfigGroup>,
pub fn from_parts<G>( domain: Option<Name>, search: Vec<Name, Global>, name_servers: G ) -> ResolverConfigwhere G: Into<NameServerConfigGroup>,
Create a ResolverConfig with all parts specified
Arguments
domain
- domain of the entity querying results. If theName
being looked up is not an FQDN, then this is the first part appended to attempt a lookup.ndots
in theResolverOption
does take precedence over this.search
- additional search domains that are attempted if theName
is not found indomain
, defaults tovec![]
name_servers
- set of name servers to use for lookups, defaults are Google:8.8.8.8
,8.8.4.4
and2001:4860:4860::8888
,2001:4860:4860::8844
sourcepub fn domain(&self) -> Option<&Name>
pub fn domain(&self) -> Option<&Name>
Returns the local domain
By default any names will be appended to all non-fully-qualified-domain names, and searched for after any ndots rules
sourcepub fn set_domain(&mut self, domain: Name)
pub fn set_domain(&mut self, domain: Name)
Set the domain of the entity querying results.
sourcepub fn search(&self) -> &[Name]
pub fn search(&self) -> &[Name]
Returns the search domains
These will be queried after any local domain and then in the order of the set of search domains
sourcepub fn add_search(&mut self, search: Name)
pub fn add_search(&mut self, search: Name)
Add a search domain
sourcepub fn add_name_server(&mut self, name_server: NameServerConfig)
pub fn add_name_server(&mut self, name_server: NameServerConfig)
Add the configuration for a name server
sourcepub fn name_servers(&self) -> &[NameServerConfig]
pub fn name_servers(&self) -> &[NameServerConfig]
Returns a reference to the name servers
Trait Implementations§
source§impl Clone for ResolverConfig
impl Clone for ResolverConfig
source§fn clone(&self) -> ResolverConfig
fn clone(&self) -> ResolverConfig
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ResolverConfig
impl Debug for ResolverConfig
source§impl Default for ResolverConfig
impl Default for ResolverConfig
source§fn default() -> ResolverConfig
fn default() -> ResolverConfig
Creates a default configuration, using 8.8.8.8
, 8.8.4.4
and 2001:4860:4860::8888
, 2001:4860:4860::8844
(thank you, Google).
Please see Google’s privacy statement for important information about what they track, many ISP’s track similar information in DNS. To use the system configuration see: Resolver::from_system_conf
and AsyncResolver::from_system_conf
source§impl PartialEq<ResolverConfig> for ResolverConfig
impl PartialEq<ResolverConfig> for ResolverConfig
source§fn eq(&self, other: &ResolverConfig) -> bool
fn eq(&self, other: &ResolverConfig) -> bool
self
and other
values to be equal, and is used
by ==
.