Enable DNS over TLS and HTTPS by feature

This commit is contained in:
zonyitoo
2020-03-18 22:43:53 +08:00
parent e60cc485eb
commit a8fe3b85fc
2 changed files with 9 additions and 5 deletions
+3 -1
View File
@@ -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"
+6 -4
View File
@@ -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::<IpAddr>() {
Ok(ip) => Some(ResolverConfig::from_parts(
None,