nslookup: get rid of query::rlen field
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b74e490629
commit
71e4b3f482
@ -263,7 +263,7 @@ struct ns {
|
|||||||
|
|
||||||
struct query {
|
struct query {
|
||||||
const char *name;
|
const char *name;
|
||||||
unsigned qlen, rlen;
|
unsigned qlen;
|
||||||
// unsigned latency;
|
// unsigned latency;
|
||||||
// uint8_t rcode;
|
// uint8_t rcode;
|
||||||
unsigned char query[512];
|
unsigned char query[512];
|
||||||
@ -560,8 +560,9 @@ static int send_queries(struct ns *ns)
|
|||||||
if (tcur - tsent >= retry_interval) {
|
if (tcur - tsent >= retry_interval) {
|
||||||
send:
|
send:
|
||||||
for (qn = 0; qn < G.query_count; qn++) {
|
for (qn = 0; qn < G.query_count; qn++) {
|
||||||
if (G.query[qn].rlen)
|
if (G.query[qn].qlen == 0)
|
||||||
continue;
|
continue; /* this one was replied already */
|
||||||
|
|
||||||
if (write(pfd.fd, G.query[qn].query, G.query[qn].qlen) < 0) {
|
if (write(pfd.fd, G.query[qn].query, G.query[qn].qlen) < 0) {
|
||||||
bb_perror_msg("write to '%s'", ns->name);
|
bb_perror_msg("write to '%s'", ns->name);
|
||||||
n_replies = -1; /* "no go, try next server" */
|
n_replies = -1; /* "no go, try next server" */
|
||||||
@ -614,7 +615,7 @@ static int send_queries(struct ns *ns)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (G.query[qn].rlen) {
|
if (G.query[qn].qlen == 0) {
|
||||||
dbg("dropped duplicate response to query %u\n", qn);
|
dbg("dropped duplicate response to query %u\n", qn);
|
||||||
goto next;
|
goto next;
|
||||||
}
|
}
|
||||||
@ -634,7 +635,7 @@ static int send_queries(struct ns *ns)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Process reply */
|
/* Process reply */
|
||||||
G.query[qn].rlen = recvlen;
|
G.query[qn].qlen = 0; /* flag: "reply received" */
|
||||||
tcur = monotonic_ms();
|
tcur = monotonic_ms();
|
||||||
#if 1
|
#if 1
|
||||||
if (option_mask32 & OPT_debug) {
|
if (option_mask32 & OPT_debug) {
|
||||||
@ -733,8 +734,12 @@ static void add_query(int type, const char *dname)
|
|||||||
|
|
||||||
dbg("new query#%u type %u for '%s'\n", count, type, dname);
|
dbg("new query#%u type %u for '%s'\n", count, type, dname);
|
||||||
new_q->name = dname;
|
new_q->name = dname;
|
||||||
qlen = res_mkquery(QUERY, dname, C_IN, type, NULL, 0, NULL,
|
|
||||||
new_q->query, sizeof(new_q->query));
|
qlen = res_mkquery(QUERY, dname, C_IN, type,
|
||||||
|
/*data:*/ NULL, /*datalen:*/ 0,
|
||||||
|
/*newrr:*/ NULL,
|
||||||
|
new_q->query, sizeof(new_q->query)
|
||||||
|
);
|
||||||
new_q->qlen = qlen;
|
new_q->qlen = qlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -913,13 +918,13 @@ int nslookup_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
|
|
||||||
err = 0;
|
err = 0;
|
||||||
for (rc = 0; rc < G.query_count; rc++) {
|
for (rc = 0; rc < G.query_count; rc++) {
|
||||||
if (G.query[rc].rlen == 0) {
|
if (G.query[rc].qlen) {
|
||||||
printf("*** Can't find %s: No answer\n", G.query[rc].name);
|
printf("*** Can't find %s: No answer\n", G.query[rc].name);
|
||||||
err = 1;
|
err = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (err)
|
if (err) /* should this affect exicode too? */
|
||||||
bb_putchar('\n'); /* should this affect exicode too? */
|
bb_putchar('\n');
|
||||||
|
|
||||||
if (ENABLE_FEATURE_CLEAN_UP) {
|
if (ENABLE_FEATURE_CLEAN_UP) {
|
||||||
free(G.server);
|
free(G.server);
|
||||||
|
Loading…
Reference in New Issue
Block a user