Browse Source

revert dns changes, add trace line before resolve begins

master
Jonathan Cobb 4 years ago
parent
commit
a2fa2005a8
2 changed files with 22 additions and 52 deletions
  1. +20
    -52
      src/dns_cache.rs
  2. +2
    -0
      src/proxy.rs

+ 20
- 52
src/dns_cache.rs View File

@@ -25,61 +25,29 @@ use tokio::task::JoinHandle;
use trust_dns_resolver::TokioAsyncResolver; use trust_dns_resolver::TokioAsyncResolver;
use trust_dns_resolver::config::{NameServerConfig, Protocol, ResolverConfig, ResolverOpts}; use trust_dns_resolver::config::{NameServerConfig, Protocol, ResolverConfig, ResolverOpts};


use whoami::{platform, Platform};

pub async fn create_resolver(dns1_sock: SocketAddr, dns2_sock: SocketAddr) -> TokioAsyncResolver { pub async fn create_resolver(dns1_sock: SocketAddr, dns2_sock: SocketAddr) -> TokioAsyncResolver {
let mut resolver_config: ResolverConfig = ResolverConfig::new(); let mut resolver_config: ResolverConfig = ResolverConfig::new();


let platform : Platform = platform();
match platform {
Platform::Windows => {
// try TCP first on Windows, UDP sockets may have permission issues (?)
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns1_sock,
protocol: Protocol::Tcp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns2_sock,
protocol: Protocol::Tcp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns1_sock,
protocol: Protocol::Udp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns2_sock,
protocol: Protocol::Udp,
tls_dns_name: None
});
}
_ => {
// try UDP first on all other platforms, usually faster
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns1_sock,
protocol: Protocol::Udp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns2_sock,
protocol: Protocol::Udp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns1_sock,
protocol: Protocol::Tcp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns2_sock,
protocol: Protocol::Tcp,
tls_dns_name: None
});
}
};

resolver_config.add_name_server(NameServerConfig {
socket_addr: dns1_sock,
protocol: Protocol::Udp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns1_sock,
protocol: Protocol::Tcp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns2_sock,
protocol: Protocol::Udp,
tls_dns_name: None
});
resolver_config.add_name_server(NameServerConfig {
socket_addr: dns2_sock,
protocol: Protocol::Tcp,
tls_dns_name: None
});
TokioAsyncResolver::tokio(resolver_config, ResolverOpts::default()).await.unwrap() TokioAsyncResolver::tokio(resolver_config, ResolverOpts::default()).await.unwrap()
} }




+ 2
- 0
src/proxy.rs View File

@@ -143,6 +143,8 @@ async fn proxy(client: Client<HttpsConnector<HttpConnector<CacheResolver>>>,
} }


let host = host.unwrap(); let host = host.unwrap();
let host_string = String::from(host);
trace!("proxy: received request for host {:?}, resolving...", host_string);
let ip_string = resolve_with_cache(host, &resolver, resolver_cache).await; let ip_string = resolve_with_cache(host, &resolver, resolver_cache).await;
info!("proxy: host {} resolved to: {}", host, ip_string); info!("proxy: host {} resolved to: {}", host, ip_string);
trace!("proxy: request is {:?}", req); trace!("proxy: request is {:?}", req);


Loading…
Cancel
Save