aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-08-16 10:36:14 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-08-16 10:49:40 +0200
commite9ba912001c5ebc513237694b28f2aec3b760066 (patch)
treef74050897eca4073ba483287e04bcadb20f7d6ff /src
parent95a6938f3a156e488ad74ba113b28cbd0d9c2398 (diff)
don't set NXDOMAIN for existent domains that don't have the requested record
fixes lookup tools printing warnings or failing for IPv4 only or IPv6 only hostnames
Diffstat (limited to 'src')
-rw-r--r--src/main.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index 4afba59..f30f84a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -161,6 +161,8 @@ fn handle_query(
}
});
+ let mut rcode = RCode::NoError;
+
let mut resp_answers = Vec::new();
let mut resp_authorities = Vec::new();
let mut resp_additionals = Vec::new();
@@ -185,6 +187,8 @@ fn handle_query(
let bytes = Bytes::copy_from_slice(buf);
let resp = Dns::decode(bytes)?;
+ rcode = resp.flags.rcode;
+
resp_answers = resp.answers;
resp_authorities = resp.authorities;
resp_additionals = resp.additionals;
@@ -207,11 +211,7 @@ fn handle_query(
ra: true,
ad: false,
cd: false,
- rcode: if !answers.is_empty() {
- RCode::NoError
- } else {
- RCode::NXDomain
- },
+ rcode,
},
questions,
answers,