diff --git a/Cargo.toml b/Cargo.toml index 81780449..60177447 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,6 +52,8 @@ aes-pmac-siv = ["miscreant"] camellia-cfb = ["openssl"] single-threaded = [] trust-dns = ["trust-dns-resolver"] +dns-over-tls = ["trust-dns-resolver/dns-over-rustls"] +dns-over-https = ["trust-dns-resolver/dns-over-https-rustls"] openssl-vendored = ["openssl/vendored"] local-dns-relay = [] local-flow-stat = [] @@ -81,7 +83,7 @@ url = "2.1" byte_string = "1.0" libsodium-sys = { version = "0.2", optional = true } miscreant = { version = "0.5", optional = true } -trust-dns-resolver = { version = "0.19", features = ["dns-over-rustls", "dns-over-https-rustls"], optional = true } +trust-dns-resolver = { version = "0.19", optional = true } trust-dns-proto = "0.19" hkdf = "0.8" hmac = "0.7" diff --git a/src/config.rs b/src/config.rs index cb84e2c5..85c305e7 100644 --- a/src/config.rs +++ b/src/config.rs @@ -50,15 +50,12 @@ use std::{ io::{self, Read}, net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6}, option::Option, - path::Path, + path::{Path, PathBuf}, str::FromStr, string::ToString, time::Duration, }; -#[cfg(unix)] -use std::path::PathBuf; - use base64::{decode_config, encode_config, URL_SAFE_NO_PAD}; use bytes::Bytes; use cfg_if::cfg_if; @@ -1234,14 +1231,19 @@ impl Config { "google" => Some(ResolverConfig::google()), "cloudflare" => Some(ResolverConfig::cloudflare()), + #[cfg(feature = "dns-over-tls")] "cloudflare_tls" => Some(ResolverConfig::cloudflare_tls()), + #[cfg(feature = "dns-over-https")] "cloudflare_https" => Some(ResolverConfig::cloudflare_https()), "quad9" => Some(ResolverConfig::quad9()), + #[cfg(feature = "dns-over-tls")] "quad9_tls" => Some(ResolverConfig::quad9_tls()), _ => { // Set ips directly + // + // TODO: Support customizable DNS over TLS or HTTPS match ds.parse::() { Ok(ip) => Some(ResolverConfig::from_parts( None,