int result = 0;
size_t i;
+ char *arg_end_ptr = NULL;
p = NULL;
rrlist = NULL;
domain = NULL;
res = NULL;
+
if (argc < 2) {
usage(stdout, argv[0]);
exit(EXIT_FAILURE);
exit(1);
}
i++;
+ } else if (strncmp(argv[i], "-v", 3) == 0) {
+ if (i + 1 < argc) {
+ verbosity = strtol(argv[i+1], &arg_end_ptr, 10);
+ if (*arg_end_ptr != '\0') {
+ printf("Bad argument for -v: %s\n", argv[i+1]);
+ exit(1);
+ }
+ } else {
+ printf("Missing argument for -v\n");
+ exit(1);
+ }
+ i++;
} else {
if (argv[i][0] == '@') {
if (strlen(argv[i]) == 1) {
/* use the resolver to send it a query for the soa
* records of the domain given on the command line
*/
+ if (verbosity >= 3) {
+ printf("\nQuerying for: ");
+ ldns_rdf_print(stdout, domain);
+ printf("\n");
+ }
p = ldns_resolver_query(res, domain, LDNS_RR_TYPE_SOA, LDNS_RR_CLASS_IN, LDNS_RD);
soa = NULL;
+ if (verbosity >= 5) {
+ if (p) {
+ ldns_pkt_print(stdout, p);
+ } else {
+ fprintf(stdout, "No Packet Received from ldns_resolver_query()\n");
+ }
+ }
if (!p) {
exit(3);
ldns_pkt_free(p);
p = NULL;
}
+ if (verbosity >= 3) {
+ printf("Querying for: ");
+ ldns_rdf_print(stdout, last_dname_p);
+ printf("\n");
+ }
p = ldns_resolver_query(res, last_dname_p, LDNS_RR_TYPE_ANY, LDNS_RR_CLASS_IN, LDNS_RD);
+ if (verbosity >= 5) {
+ if (p) {
+ ldns_pkt_print(stdout, p);
+ } else {
+ fprintf(stdout, "No Packet Received from ldns_resolver_query()\n");
+ }
+ }
+
if (next_dname) {
ldns_rdf_deep_free(next_dname);
ldns_rdf_print(stderr, last_dname_p);
fprintf(stderr, "\n");
while (!p) {
+ if (verbosity >= 3) {
+ printf("Querying for: ");
+ ldns_rdf_print(stdout, last_dname_p);
+ printf("\n");
+ }
p = ldns_resolver_query(res, last_dname_p, LDNS_RR_TYPE_ANY, LDNS_RR_CLASS_IN, LDNS_RD);
+ if (verbosity >= 5) {
+ if (p) {
+ ldns_pkt_print(stdout, p);
+ } else {
+ fprintf(stdout, "No Packet Received from ldns_resolver_query()\n");
+ }
+ }
+
if (!p) {
fprintf(stderr, "Error trying to resolve: ");
ldns_rdf_print(stderr, last_dname_p);
if (ldns_pkt_rcode(p) == 2) {
ldns_pkt_free(p);
p = NULL;
+ if (verbosity >= 3) {
+ printf("Querying for: ");
+ ldns_rdf_print(stdout, last_dname);
+ printf("\n");
+ }
p = ldns_resolver_query(res, last_dname, LDNS_RR_TYPE_ANY, LDNS_RR_CLASS_IN, LDNS_RD);
+ if (verbosity >= 5) {
+ if (p) {
+ ldns_pkt_print(stdout, p);
+ } else {
+ fprintf(stdout, "No Packet Received from ldns_resolver_query()\n");
+ }
+ }
+
if (!p) {
exit(51);
}