From 064d18b8e5dc93d33f24d2d46123f71bdb753061 Mon Sep 17 00:00:00 2001 From: Michel Stam Date: Thu, 27 Feb 2014 21:42:38 +0100 Subject: resolv: try next server on SERVFAIL Commit e1420eca7374cd8f583e9d774c890645a205aaee fixed a bug where a response code should mean the next server is tried. However, it tries only the next search domain, and never skips to the next server. This fix makes sure we try the next server on SERVFAIL. Signed-off-by: Michel Stam Signed-off-by: Bernhard Reutner-Fischer --- libc/inet/resolv.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'libc/inet') diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index 154734dc5..cfc1eee9b 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -1471,9 +1471,11 @@ int __dns_lookup(const char *name, } /* no more search domains to try */ } - /* dont loop, this is "no such host" situation */ - h_errno = HOST_NOT_FOUND; - goto fail1; + if (h.rcode != SERVFAIL) { + /* dont loop, this is "no such host" situation */ + h_errno = HOST_NOT_FOUND; + goto fail1; + } } /* Insert other non-fatal errors here, which do not warrant * switching to next nameserver */ -- cgit v1.2.3