Return Self
from AsyncResolver::new()
This commit is contained in:
parent
6423eff862
commit
1d9d50cbe0
@ -31,7 +31,7 @@ async fn main() {
|
||||
let resolver = resolver(
|
||||
config::ResolverConfig::default(),
|
||||
config::ResolverOpts::default(),
|
||||
).await.expect("failed to connect resolver");
|
||||
).await;
|
||||
|
||||
// Lookup the IP addresses associated with a name.
|
||||
// This returns a future that will lookup the IP addresses, it must be run in the Core to
|
||||
|
@ -55,7 +55,7 @@
|
||||
//! let resolver = resolver(
|
||||
//! config::ResolverConfig::default(),
|
||||
//! config::ResolverOpts::default(),
|
||||
//! ).await.expect("failed to connect resolver");
|
||||
//! ).await;
|
||||
//!
|
||||
//! // Lookup the IP addresses associated with a name.
|
||||
//! // This returns a future that will lookup the IP addresses, it must be run in the Core to
|
||||
@ -130,7 +130,7 @@ pub type AsyncStdResolver = AsyncResolver<AsyncStdRuntimeProvider>;
|
||||
pub async fn resolver(
|
||||
config: config::ResolverConfig,
|
||||
options: config::ResolverOpts,
|
||||
) -> Result<AsyncStdResolver, ResolveError> {
|
||||
) -> AsyncStdResolver {
|
||||
AsyncStdResolver::new(config, options, AsyncStdRuntimeProvider::new())
|
||||
}
|
||||
|
||||
|
@ -82,8 +82,7 @@ async fn main() {
|
||||
ResolverConfig::google(),
|
||||
ResolverOpts::default(),
|
||||
PrintProvider::default(),
|
||||
)
|
||||
.unwrap();
|
||||
);
|
||||
lookup_test(resolver).await;
|
||||
|
||||
#[cfg(feature = "dns-over-https-rustls")]
|
||||
@ -92,8 +91,7 @@ async fn main() {
|
||||
ResolverConfig::cloudflare_https(),
|
||||
ResolverOpts::default(),
|
||||
PrintProvider::default(),
|
||||
)
|
||||
.unwrap();
|
||||
);
|
||||
lookup_test(resolver2).await;
|
||||
}
|
||||
|
||||
|
@ -118,7 +118,7 @@ impl TokioAsyncResolver {
|
||||
/// background task that runs resolutions for the `AsyncResolver`. See the
|
||||
/// documentation for `AsyncResolver` for more information on how to use
|
||||
/// the background future.
|
||||
pub fn tokio(config: ResolverConfig, options: ResolverOpts) -> Result<Self, ResolveError> {
|
||||
pub fn tokio(config: ResolverConfig, options: ResolverOpts) -> Self {
|
||||
Self::new(config, options, TokioRuntimeProvider::new())
|
||||
}
|
||||
|
||||
@ -152,11 +152,7 @@ impl<R: RuntimeProvider> AsyncResolver<R> {
|
||||
/// background task that runs resolutions for the `AsyncResolver`. See the
|
||||
/// documentation for `AsyncResolver` for more information on how to use
|
||||
/// the background future.
|
||||
pub fn new(
|
||||
config: ResolverConfig,
|
||||
options: ResolverOpts,
|
||||
provider: R,
|
||||
) -> Result<Self, ResolveError> {
|
||||
pub fn new(config: ResolverConfig, options: ResolverOpts, provider: R) -> Self {
|
||||
Self::new_with_conn(config, options, provider)
|
||||
}
|
||||
|
||||
@ -195,12 +191,7 @@ impl<P: RuntimeProvider> AsyncResolver<P> {
|
||||
/// background task that runs resolutions for the `AsyncResolver`. See the
|
||||
/// documentation for `AsyncResolver` for more information on how to use
|
||||
/// the background future.
|
||||
#[allow(clippy::unnecessary_wraps)]
|
||||
pub fn new_with_conn(
|
||||
config: ResolverConfig,
|
||||
options: ResolverOpts,
|
||||
conn_provider: P,
|
||||
) -> Result<Self, ResolveError> {
|
||||
pub fn new_with_conn(config: ResolverConfig, options: ResolverOpts, conn_provider: P) -> Self {
|
||||
let pool =
|
||||
AbstractNameServerPool::from_config_with_provider(&config, &options, conn_provider);
|
||||
let either;
|
||||
@ -230,12 +221,12 @@ impl<P: RuntimeProvider> AsyncResolver<P> {
|
||||
|
||||
trace!("handle passed back");
|
||||
let lru = DnsLru::new(options.cache_size, dns_lru::TtlConfig::from_opts(&options));
|
||||
Ok(Self {
|
||||
Self {
|
||||
config,
|
||||
options,
|
||||
client_cache: CachingClient::with_cache(lru, either, options.preserve_intermediates),
|
||||
hosts,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/// Constructs a new Resolver with the system configuration.
|
||||
@ -249,7 +240,7 @@ impl<P: RuntimeProvider> AsyncResolver<P> {
|
||||
)]
|
||||
pub fn from_system_conf_with_provider(conn_provider: P) -> Result<Self, ResolveError> {
|
||||
let (config, options) = super::system_conf::read_system_conf()?;
|
||||
Self::new_with_conn(config, options, conn_provider)
|
||||
Ok(Self::new_with_conn(config, options, conn_provider))
|
||||
}
|
||||
|
||||
/// Per request options based on the ResolverOpts
|
||||
@ -477,8 +468,7 @@ pub mod testing {
|
||||
mut exec: E,
|
||||
handle: R,
|
||||
) {
|
||||
let resolver = AsyncResolver::<R>::new(config, ResolverOpts::default(), handle)
|
||||
.expect("failed to create resolver");
|
||||
let resolver = AsyncResolver::<R>::new(config, ResolverOpts::default(), handle);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("www.example.com."))
|
||||
@ -502,8 +492,7 @@ pub mod testing {
|
||||
/// Test IP lookup from IP literals.
|
||||
pub fn ip_lookup_test<E: Executor, R: RuntimeProvider>(mut exec: E, handle: R) {
|
||||
let resolver =
|
||||
AsyncResolver::<R>::new(ResolverConfig::default(), ResolverOpts::default(), handle)
|
||||
.expect("failed to create resolver");
|
||||
AsyncResolver::<R>::new(ResolverConfig::default(), ResolverOpts::default(), handle);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("10.1.0.2"))
|
||||
@ -535,8 +524,7 @@ pub mod testing {
|
||||
// AsyncResolver works correctly.
|
||||
use std::thread;
|
||||
let resolver =
|
||||
AsyncResolver::<R>::new(ResolverConfig::default(), ResolverOpts::default(), handle)
|
||||
.expect("failed to create resolver");
|
||||
AsyncResolver::<R>::new(ResolverConfig::default(), ResolverOpts::default(), handle);
|
||||
|
||||
let resolver_one = resolver.clone();
|
||||
let resolver_two = resolver;
|
||||
@ -594,8 +582,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("www.example.com."))
|
||||
@ -635,8 +622,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
// needs to be a domain that exists, but is not signed (eventually this will be)
|
||||
let response = exec.block_on(resolver.lookup_ip("trust-dns.org."));
|
||||
@ -732,8 +718,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("www.example.com."))
|
||||
@ -768,8 +753,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
// notice this is not a FQDN, no trailing dot.
|
||||
let response = exec
|
||||
@ -808,8 +792,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
// notice this is not a FQDN, no trailing dot.
|
||||
let response = exec
|
||||
@ -849,8 +832,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
// notice no dots, should not trigger ndots rule
|
||||
let response = exec
|
||||
@ -889,8 +871,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
// notice no dots, should not trigger ndots rule
|
||||
let response = exec
|
||||
@ -910,8 +891,7 @@ pub mod testing {
|
||||
/// Test idna.
|
||||
pub fn idna_test<E: Executor + Send + 'static, R: RuntimeProvider>(mut exec: E, handle: R) {
|
||||
let resolver =
|
||||
AsyncResolver::<R>::new(ResolverConfig::default(), ResolverOpts::default(), handle)
|
||||
.expect("failed to create resolver");
|
||||
AsyncResolver::<R>::new(ResolverConfig::default(), ResolverOpts::default(), handle);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("中国.icom.museum."))
|
||||
@ -934,8 +914,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("localhost"))
|
||||
@ -960,8 +939,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("localhost"))
|
||||
@ -990,8 +968,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("198.51.100.35"))
|
||||
@ -1020,8 +997,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("2001:db8::c633:6423"))
|
||||
@ -1050,8 +1026,7 @@ pub mod testing {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
handle,
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = exec
|
||||
.block_on(resolver.lookup_ip("2001:db8::198.51.100.35"))
|
||||
@ -1274,8 +1249,7 @@ mod tests {
|
||||
let mut config = ResolverConfig::default();
|
||||
config.add_search(Name::from_ascii("example.com.").unwrap());
|
||||
let resolver =
|
||||
AsyncResolver::<TokioRuntimeProvider>::new(config, ResolverOpts::default(), handle)
|
||||
.expect("failed to create resolver");
|
||||
AsyncResolver::<TokioRuntimeProvider>::new(config, ResolverOpts::default(), handle);
|
||||
let tor_address = [
|
||||
Name::from_ascii("2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion")
|
||||
.unwrap(),
|
||||
|
@ -84,8 +84,7 @@ mod tests {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
TokioRuntimeProvider::default(),
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = io_loop
|
||||
.block_on(resolver.lookup_ip("www.example.com."))
|
||||
|
@ -112,7 +112,7 @@
|
||||
//! TokioAsyncResolver::tokio(
|
||||
//! ResolverConfig::default(),
|
||||
//! ResolverOpts::default())
|
||||
//! }).expect("failed to connect resolver");
|
||||
//! });
|
||||
//!
|
||||
//! // Lookup the IP addresses associated with a name.
|
||||
//! // This returns a future that will lookup the IP addresses, it must be run in the Core to
|
||||
@ -153,7 +153,7 @@
|
||||
//! # TokioAsyncResolver::tokio(
|
||||
//! # ResolverConfig::default(),
|
||||
//! # ResolverOpts::default())
|
||||
//! # }).expect("failed to connect resolver");
|
||||
//! # });
|
||||
//! #
|
||||
//! let ips = io_loop.block_on(resolver.lookup_ip("www.example.com.")).unwrap();
|
||||
//!
|
||||
|
@ -80,8 +80,7 @@ impl Resolver {
|
||||
builder.enable_all();
|
||||
|
||||
let runtime = builder.build()?;
|
||||
let async_resolver = AsyncResolver::new(config, options, TokioRuntimeProvider::new())
|
||||
.expect("failed to create resolver");
|
||||
let async_resolver = AsyncResolver::new(config, options, TokioRuntimeProvider::new());
|
||||
|
||||
Ok(Self {
|
||||
runtime: Mutex::new(runtime),
|
||||
|
@ -46,8 +46,7 @@ mod tests {
|
||||
..ResolverOpts::default()
|
||||
},
|
||||
TokioRuntimeProvider::default(),
|
||||
)
|
||||
.expect("failed to create resolver");
|
||||
);
|
||||
|
||||
let response = io_loop
|
||||
.block_on(resolver.lookup_ip("www.example.com."))
|
||||
|
@ -77,8 +77,7 @@ impl ForwardAuthority {
|
||||
|
||||
let config = ResolverConfig::from_parts(None, vec![], name_servers);
|
||||
|
||||
let resolver = TokioAsyncResolver::new(config, options, TokioRuntimeProvider::new())
|
||||
.map_err(|e| format!("error constructing new Resolver: {}", e))?;
|
||||
let resolver = TokioAsyncResolver::new(config, options, TokioRuntimeProvider::new());
|
||||
|
||||
info!("forward resolver configured: {}: ", origin);
|
||||
|
||||
|
@ -339,7 +339,7 @@ pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
options.ip_strategy = trust_dns_resolver::config::LookupIpStrategy::Ipv4AndIpv6;
|
||||
}
|
||||
|
||||
let resolver_arc = Arc::new(TokioAsyncResolver::tokio(config, options)?);
|
||||
let resolver_arc = Arc::new(TokioAsyncResolver::tokio(config, options));
|
||||
|
||||
if let Some(domainname) = &opts.domainname {
|
||||
log_query(domainname, opts.ty, &name_servers, &opts);
|
||||
|
Loading…
Reference in New Issue
Block a user