diff --git a/src/dns_cache.rs b/src/dns_cache.rs index 8aaa31d..fcd09f5 100644 --- a/src/dns_cache.rs +++ b/src/dns_cache.rs @@ -25,61 +25,29 @@ use tokio::task::JoinHandle; use trust_dns_resolver::TokioAsyncResolver; 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 { 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() } diff --git a/src/proxy.rs b/src/proxy.rs index e749273..ef93f97 100644 --- a/src/proxy.rs +++ b/src/proxy.rs @@ -143,6 +143,8 @@ async fn proxy(client: Client>>, } 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; info!("proxy: host {} resolved to: {}", host, ip_string); trace!("proxy: request is {:?}", req);