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.
Make that permanent. */
if (server && (forward->flags & FREC_TEST_PKTSZ))
Make that permanent. To avoid reduxing the packet size for an single dropped packet,
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;
/* If the answer is an error, keep the forward record in place in case