Tweak EDNS timeout code.

This commit is contained in:
Simon Kelley
2015-05-10 13:50:59 +01:00
parent b059c96dc6
commit 86fa104692

View File

@@ -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