From: Simon Kelley Date: Sun, 10 May 2015 12:50:59 +0000 (+0100) Subject: Tweak EDNS timeout code. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=86fa1046920dedc8134136a6244ca96e8a37e9d8;p=people%2Fms%2Fdnsmasq.git Tweak EDNS timeout code. --- diff --git a/src/forward.c b/src/forward.c index 592243f..74e5ab6 100644 --- a/src/forward.c +++ b/src/forward.c @@ -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