Return to dnsmasq-2.78xx-try-all-ns.patch CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / dnsmasq / contrib / try-all-ns |
1.1 ! misho 1: diff --git a/src/forward.c b/src/forward.c ! 2: index e3fa94b..ecf3b98 100644 ! 3: --- a/src/forward.c ! 4: +++ b/src/forward.c ! 5: @@ -789,9 +789,12 @@ void reply_query(int fd, int family, time_t now) ! 6: ! 7: /* Note: if we send extra options in the EDNS0 header, we can't recreate ! 8: the query from the reply. */ ! 9: - if (RCODE(header) == REFUSED && ! 10: - forward->forwardall == 0 && ! 11: - !(forward->flags & FREC_HAS_EXTRADATA)) ! 12: + if ((RCODE(header) == REFUSED && ! 13: + forward->forwardall == 0 && ! 14: + !(forward->flags & FREC_HAS_EXTRADATA)) || ! 15: + /* If strict-order is set, try next server on NXDOMAIN reply */ ! 16: + (RCODE(header) == NXDOMAIN && option_bool(OPT_ORDER) && ! 17: + server->next != NULL)) ! 18: /* for broken servers, attempt to send to another one. */ ! 19: { ! 20: unsigned char *pheader;