From: Rahul Thakur <rahul.tha...@iopsys.eu>

The handling of truncated reponse is broken in 2.90. The answers
are removed before forwarding in case TC bit is set, which
seems incorrect as per rfc 5625.
A combined reading of section 4.4.1 of rfc 5625 section 6.1.3.2
of rfc 1123 suggests when dnsmasq explicitly deletes the answers
in a truncated response, then it deprives clients that do not fallback
to TCP and are happy with the truncated UDP response to be able
to resolve the queries. In light of this, it sounds like a better
strategy is to forward the truncated UDP response as is to the client,
and let the client decide what action it wants to take.

Signed-off-by: Rahul Thakur <rahul.tha...@iopsys.eu>
---
 src/forward.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/forward.c b/src/forward.c
index 10e7496..1ede913 100644
--- a/src/forward.c
+++ b/src/forward.c
@@ -785,9 +785,6 @@ static size_t process_reply(struct dns_header *header, 
time_t now, struct server
   if (header->hb3 & HB3_TC)
     {
       log_query(F_UPSTREAM, NULL, NULL, "truncated", 0);
-      header->ancount = htons(0);
-      header->nscount = htons(0);
-      header->arcount = htons(0);
     }
 
   if  (!(header->hb3 & HB3_TC) && (!bogusanswer || (header->hb4 & HB4_CD)))
-- 
2.25.1


_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to