[git commit] resolv: try next server on SERVFAIL

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Wed Apr 23 13:36:49 UTC 2014


commit: http://git.uclibc.org/uClibc/commit/?id=064d18b8e5dc93d33f24d2d46123f71bdb753061
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

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 <michel at reverze.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
 libc/inet/resolv.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c
index 154734d..cfc1eee 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 */


More information about the uClibc-cvs mailing list