getdns_query for addresses with qname but no qtype

This commit is contained in:
Willem Toorop 2018-12-03 14:52:58 +01:00
parent 30a3a6b026
commit ea55b12a08
2 changed files with 14 additions and 0 deletions

View File

@ -1,4 +1,6 @@
* 2018-??-??: Version 1.4.3
* getdns_query queries for addresses when a query name
without a type is given.
* RFE #408: Fetching of trust anchors will be retried
after failure, after a certain backoff time. The time
can be configured with

View File

@ -581,11 +581,15 @@ getdns_return_t parse_args(int argc, char **argv)
size_t upstream_count = 0;
FILE *fh;
int int_value;
int got_rrtype = 0;
int got_calltype = 0;
int got_qname = 0;
for (i = 1; i < argc; i++) {
arg = argv[i];
if ((t = get_rrtype(arg)) >= 0) {
request_type = t;
got_rrtype = 1;
continue;
} else if (arg[0] == '+') {
@ -654,6 +658,7 @@ getdns_return_t parse_args(int argc, char **argv)
continue;
} else if (arg[0] != '-') {
got_qname = 1;
name = arg;
continue;
}
@ -667,6 +672,7 @@ getdns_return_t parse_args(int argc, char **argv)
break;
case 'A':
calltype = ADDRESS;
got_calltype = 1;
break;
case 'b':
if (c[1] != 0 || ++i >= argc || !*argv[i]) {
@ -740,9 +746,11 @@ getdns_return_t parse_args(int argc, char **argv)
break;
case 'G':
calltype = GENERAL;
got_calltype = 1;
break;
case 'H':
calltype = HOSTNAME;
got_calltype = 1;
break;
case 'h':
print_usage(stdout, argv[0]);
@ -871,6 +879,7 @@ getdns_return_t parse_args(int argc, char **argv)
break;
case 'S':
calltype = SERVICE;
got_calltype = 1;
break;
case 't':
if (c[1] != 0 || ++i >= argc || !*argv[i]) {
@ -1094,6 +1103,9 @@ getdns_return_t parse_args(int argc, char **argv)
}
next: ;
}
if (!got_calltype && !got_rrtype && got_qname) {
calltype = ADDRESS;
}
if (r)
return r;
if (pubkey_pinset && upstream_count) {