nslookup: return exitcode 1 on resolution errors
function old new delta nslookup_main 757 760 +3 send_queries 1690 1677 -13 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
8419123112
commit
6ca8e347fe
@ -257,7 +257,7 @@ int nslookup_main(int argc, char **argv)
|
|||||||
struct ns {
|
struct ns {
|
||||||
const char *name;
|
const char *name;
|
||||||
len_and_sockaddr *lsa;
|
len_and_sockaddr *lsa;
|
||||||
int failures;
|
//UNUSED: int failures;
|
||||||
int replies;
|
int replies;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -320,6 +320,7 @@ struct globals {
|
|||||||
struct query *query;
|
struct query *query;
|
||||||
char *search;
|
char *search;
|
||||||
smalluint have_search_directive;
|
smalluint have_search_directive;
|
||||||
|
smalluint exitcode;
|
||||||
} FIX_ALIASING;
|
} FIX_ALIASING;
|
||||||
#define G (*(struct globals*)bb_common_bufsiz1)
|
#define G (*(struct globals*)bb_common_bufsiz1)
|
||||||
#define INIT_G() do { \
|
#define INIT_G() do { \
|
||||||
@ -593,7 +594,7 @@ static int send_queries(struct ns *ns)
|
|||||||
|
|
||||||
/* Retry immediately on SERVFAIL */
|
/* Retry immediately on SERVFAIL */
|
||||||
if (rcode == 2) {
|
if (rcode == 2) {
|
||||||
ns->failures++;
|
//UNUSED: ns->failures++;
|
||||||
if (servfail_retry) {
|
if (servfail_retry) {
|
||||||
servfail_retry--;
|
servfail_retry--;
|
||||||
write(pfd.fd, G.query[qn].query, G.query[qn].qlen);
|
write(pfd.fd, G.query[qn].query, G.query[qn].qlen);
|
||||||
@ -612,9 +613,12 @@ static int send_queries(struct ns *ns)
|
|||||||
if (rcode != 0) {
|
if (rcode != 0) {
|
||||||
printf("** server can't find %s: %s\n",
|
printf("** server can't find %s: %s\n",
|
||||||
G.query[qn].name, rcodes[rcode]);
|
G.query[qn].name, rcodes[rcode]);
|
||||||
|
G.exitcode = EXIT_FAILURE;
|
||||||
} else {
|
} else {
|
||||||
if (parse_reply(reply, recvlen) < 0)
|
if (parse_reply(reply, recvlen) < 0) {
|
||||||
printf("*** Can't find %s: Parse error\n", G.query[qn].name);
|
printf("*** Can't find %s: Parse error\n", G.query[qn].name);
|
||||||
|
G.exitcode = EXIT_FAILURE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bb_putchar('\n');
|
bb_putchar('\n');
|
||||||
n_replies++;
|
n_replies++;
|
||||||
@ -988,7 +992,7 @@ int nslookup_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
free(G.query);
|
free(G.query);
|
||||||
}
|
}
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return G.exitcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user