mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-25 02:12:58 +02:00
These fix minor bugs and contain smaller improvements. Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
30 lines
1.0 KiB
Diff
30 lines
1.0 KiB
Diff
From 86fa1046920dedc8134136a6244ca96e8a37e9d8 Mon Sep 17 00:00:00 2001
|
|
From: Simon Kelley <simon@thekelleys.org.uk>
|
|
Date: Sun, 10 May 2015 13:50:59 +0100
|
|
Subject: [PATCH 090/113] Tweak EDNS timeout code.
|
|
|
|
---
|
|
src/forward.c | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/forward.c b/src/forward.c
|
|
index 592243fd4d35..74e5ab66c423 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
|
|
--
|
|
2.1.0
|
|
|