diff -Naurp bind-9.6.0rc1/bin/dig/dighost.c bind-9.6.0rc1.oden/bin/dig/dighost.c --- bind-9.6.0rc1/bin/dig/dighost.c 2008-07-24 01:27:54.000000000 +0200 +++ bind-9.6.0rc1.oden/bin/dig/dighost.c 2008-12-17 14:37:13.000000000 +0100 @@ -721,7 +721,7 @@ make_empty_lookup(void) { looknew->identify = ISC_FALSE; looknew->identify_previous_line = ISC_FALSE; looknew->ignore = ISC_FALSE; - looknew->servfail_stops = ISC_TRUE; + looknew->servfail_stops = ISC_FALSE; looknew->besteffort = ISC_TRUE; looknew->dnssec = ISC_FALSE; looknew->nsid = ISC_FALSE; diff -Naurp bind-9.6.0rc1/bin/dig/host.1 bind-9.6.0rc1.oden/bin/dig/host.1 --- bind-9.6.0rc1/bin/dig/host.1 2008-04-05 03:09:34.000000000 +0200 +++ bind-9.6.0rc1.oden/bin/dig/host.1 2008-12-17 14:37:13.000000000 +0100 @@ -84,6 +84,9 @@ option switched on debugging traces and \fB\-v\fR enabled verbose output. .PP +The \fB-F\fR +options is used to force to don't go on the next server when the first one return a \fBSERVFAIL\fR. +.PP List mode is selected by the \fB\-l\fR option. This makes diff -Naurp bind-9.6.0rc1/bin/dig/host.c bind-9.6.0rc1.oden/bin/dig/host.c --- bind-9.6.0rc1/bin/dig/host.c 2007-12-03 01:21:48.000000000 +0100 +++ bind-9.6.0rc1.oden/bin/dig/host.c 2008-12-17 14:37:13.000000000 +0100 @@ -142,6 +142,7 @@ show_usage(void) { " -t specifies the query type\n" " -T enables TCP/IP mode\n" " -v enables verbose output\n" +" -F Don't get next server when the first one got a SERVFAIL\n" " -w specifies to wait forever for a reply\n" " -W specifies how long to wait for a reply\n" " -4 use IPv4 query transport only\n" @@ -600,6 +601,7 @@ pre_parse_args(int argc, char **argv) { case 'c': break; case 'd': break; case 'i': break; + case 'F': break; case 'l': break; case 'n': break; case 'r': break; @@ -648,6 +650,9 @@ parse_args(isc_boolean_t is_batchfile, i lookup->rdtypeset = ISC_TRUE; fatalexit = 3; break; + case 'F': + lookup->servfail_stops = ISC_TRUE; + break; case 'v': case 'd': short_form = ISC_FALSE; diff -Naurp bind-9.6.0rc1/bin/dig/nslookup.c bind-9.6.0rc1.oden/bin/dig/nslookup.c --- bind-9.6.0rc1/bin/dig/nslookup.c 2007-06-19 01:47:17.000000000 +0200 +++ bind-9.6.0rc1.oden/bin/dig/nslookup.c 2008-12-17 14:37:13.000000000 +0100 @@ -50,7 +50,7 @@ static isc_boolean_t short_form = ISC_TR comments = ISC_TRUE, section_question = ISC_TRUE, section_answer = ISC_TRUE, section_authority = ISC_TRUE, section_additional = ISC_TRUE, recurse = ISC_TRUE, - aaonly = ISC_FALSE, nofail = ISC_TRUE; + aaonly = ISC_FALSE, nofail = ISC_TRUE, fail = ISC_FALSE; static isc_boolean_t in_use = ISC_FALSE; static char defclass[MXRD] = "IN"; @@ -633,6 +633,8 @@ setoption(char *opt) { usesearch = ISC_TRUE; } else if (strncasecmp(opt, "nosearch", 5) == 0) { usesearch = ISC_FALSE; + } else if (strncasecmp(opt, "fail",6) == 0) { + fail = ISC_TRUE; } else if (strncasecmp(opt, "sil", 3) == 0) { /* deprecation_msg = ISC_FALSE; */ } else if (strncasecmp(opt, "fail", 3) == 0) { @@ -679,6 +681,7 @@ addlookup(char *opt) { lookup->rdtype = rdtype; lookup->rdtypeset = ISC_TRUE; } + lookup->servfail_stops = fail; lookup->rdclass = rdclass; lookup->rdclassset = ISC_TRUE; lookup->trace = ISC_FALSE;