mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Try other servers if first returns REFUSED when --strict-order active.
If a DNS server replies REFUSED for a given DNS query in strict order mode no failover to the next DNS server is triggered as the failover logic only covers non strict mode. As a result the client will be returned the REFUSED reply without first falling back to the secondary DNS server(s). Make failover support work as well for strict mode config in case REFUSED is replied by deleting the strict order check and rely only on forwardall being equal to 0 which is the case in non strict mode when a single server has been contacted or when strict order mode has been configured.
This commit is contained in:
committed by
Simon Kelley
parent
712dadb287
commit
9396752c11
@@ -13,6 +13,10 @@ version 2.78
|
|||||||
ff325644c7afae2588583f935f4ea9b9694eb52e. Thanks to
|
ff325644c7afae2588583f935f4ea9b9694eb52e. Thanks to
|
||||||
John Fitzgibbon for the diagnosis and patch.
|
John Fitzgibbon for the diagnosis and patch.
|
||||||
|
|
||||||
|
Try other servers if first returns REFUSED when
|
||||||
|
--strict-order active. Thanks to Hans Dedecker
|
||||||
|
for the patch
|
||||||
|
|
||||||
|
|
||||||
version 2.77
|
version 2.77
|
||||||
Generate an error when configured with a CNAME loop,
|
Generate an error when configured with a CNAME loop,
|
||||||
|
|||||||
@@ -790,7 +790,6 @@ void reply_query(int fd, int family, time_t now)
|
|||||||
/* Note: if we send extra options in the EDNS0 header, we can't recreate
|
/* Note: if we send extra options in the EDNS0 header, we can't recreate
|
||||||
the query from the reply. */
|
the query from the reply. */
|
||||||
if (RCODE(header) == REFUSED &&
|
if (RCODE(header) == REFUSED &&
|
||||||
!option_bool(OPT_ORDER) &&
|
|
||||||
forward->forwardall == 0 &&
|
forward->forwardall == 0 &&
|
||||||
!(forward->flags & FREC_HAS_EXTRADATA))
|
!(forward->flags & FREC_HAS_EXTRADATA))
|
||||||
/* for broken servers, attempt to send to another one. */
|
/* for broken servers, attempt to send to another one. */
|
||||||
|
|||||||
Reference in New Issue
Block a user