[trust-dns-resolver] Abstract resolver

1. Create a trait RuntimeProvider to abstract the resolver
implementation.
2. Make TokioAsyncResolver as default type.
3. Keep the tls related codes unchanged, which may be abstracted at a
later point.
4. Update the other codes and test cases wherever necessary.
This commit is contained in:
Chunying Wang
2019-12-27 20:49:10 -05:00
committed by Benjamin Fry
parent c9434bf85b
commit e2abc67abf
13 changed files with 202 additions and 112 deletions

View File

@@ -32,14 +32,14 @@ mod tests {
use tokio::runtime::Runtime;
use crate::config::{ResolverConfig, ResolverOpts};
use crate::AsyncResolver;
use crate::TokioAsyncResolver;
fn tls_test(config: ResolverConfig) {
//env_logger::try_init().ok();
let mut io_loop = Runtime::new().unwrap();
let resolver =
AsyncResolver::new(config, ResolverOpts::default(), io_loop.handle().clone());
TokioAsyncResolver::new(config, ResolverOpts::default(), io_loop.handle().clone());
let resolver = io_loop
.block_on(resolver)
.expect("failed to create resolver");