add query_over_tcp_only config option for hickory
Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
parent
62fd6e2c7c
commit
35114dde7d
3 changed files with 12 additions and 0 deletions
|
@ -514,6 +514,12 @@ allow_profile_lookup_federation_requests = true
|
|||
# The default is to query one nameserver and stop (false).
|
||||
#query_all_nameservers = true
|
||||
|
||||
# Enables using *only* TCP for querying your specified nameservers instead of UDP.
|
||||
#
|
||||
# You very likely do *not* want this. hickory-resolver already falls back to TCP on UDP errors.
|
||||
# Defaults to false
|
||||
#query_over_tcp_only = false
|
||||
|
||||
# DNS A/AAAA record lookup strategy
|
||||
#
|
||||
# Takes a number of one of the following options:
|
||||
|
|
|
@ -103,6 +103,8 @@ pub(crate) struct Config {
|
|||
pub(crate) dns_tcp_fallback: bool,
|
||||
#[serde(default = "true_fn")]
|
||||
pub(crate) query_all_nameservers: bool,
|
||||
#[serde(default)]
|
||||
pub(crate) query_over_tcp_only: bool,
|
||||
#[serde(default = "default_ip_lookup_strategy")]
|
||||
pub(crate) ip_lookup_strategy: u8,
|
||||
|
||||
|
|
|
@ -51,6 +51,10 @@ impl Resolver {
|
|||
for sys_conf in sys_conf.name_servers() {
|
||||
let mut ns = sys_conf.clone();
|
||||
|
||||
if config.query_over_tcp_only {
|
||||
ns.protocol = hickory_resolver::config::Protocol::Tcp;
|
||||
}
|
||||
|
||||
ns.trust_negative_responses = !config.query_all_nameservers;
|
||||
|
||||
conf.add_name_server(ns);
|
||||
|
|
Loading…
Add table
Reference in a new issue