Commit 86fa1046 authored by Simon Kelley's avatar Simon Kelley

Tweak EDNS timeout code.

parent b059c96d
...@@ -799,8 +799,10 @@ void reply_query(int fd, int family, time_t now) ...@@ -799,8 +799,10 @@ void reply_query(int fd, int family, time_t now)
} }
/* We tried resending to this server with a smaller maximum size and got an answer. /* We tried resending to this server with a smaller maximum size and got an answer.
Make that permanent. */ Make that permanent. To avoid reduxing the packet size for an single dropped packet,
if (server && (forward->flags & FREC_TEST_PKTSZ)) only do this when we get a truncated answer, or one larger than the safe size. */
if (server && (forward->flags & FREC_TEST_PKTSZ) &&
((header->hb3 & HB3_TC) || n >= SAFE_PKTSZ))
server->edns_pktsz = SAFE_PKTSZ; server->edns_pktsz = SAFE_PKTSZ;
/* If the answer is an error, keep the forward record in place in case /* If the answer is an error, keep the forward record in place in case
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment