diff options
author | Daniel Friesel <derf@derf.homelinux.org> | 2009-08-10 19:49:14 +0200 |
---|---|---|
committer | Daniel Friesel <derf@derf.homelinux.org> | 2009-08-10 19:49:14 +0200 |
commit | 84beab1ef6f778949023e4f050c9b2329f06f305 (patch) | |
tree | 5da62bf20fdea032a1b4510606e80bce889b5b36 | |
parent | 01661c8120aa73ae854c344d5c63f176762718a6 (diff) |
Added -r option to always resolve the RDNS
-rw-r--r-- | src/host.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -17,7 +17,7 @@ */ #define PRINT_USAGE \ - fprintf(stderr, "Usage: %s [-46] <hostname>\n", argv[0]) + fprintf(stderr, "Usage: %s [-46r] <hostname>\n", argv[0]) /** * \brief convert addrinfo to simple IP address @@ -54,6 +54,7 @@ int main(int argc, char **argv) { char hostname[NI_MAXHOST]; char ip_address[INET6_ADDRSTRLEN]; int ret; + int show_rdns = 0; enum { INPUT_NONE, INPUT_IP, @@ -61,7 +62,7 @@ int main(int argc, char **argv) { } input_type = INPUT_NONE; char option; - while ((option = getopt(argc, argv, "46")) != -1) { + while ((option = getopt(argc, argv, "46r")) != -1) { switch (option) { case '4': hints.ai_family = AF_INET; @@ -69,6 +70,9 @@ int main(int argc, char **argv) { case '6': hints.ai_family = AF_INET6; break; + case 'r': + show_rdns = 1; + break; default: PRINT_USAGE; return EXIT_FAILURE; @@ -97,7 +101,7 @@ int main(int argc, char **argv) { } if (input_type == INPUT_HOST) puts(ip_address); - else { + if ((input_type == INPUT_IP) || (show_rdns == 1)) { ret = getnameinfo(address->ai_addr, address->ai_addrlen, hostname, NI_MAXHOST, NULL, 0, 0); if (ret != 0) { fprintf(stderr, "getnameinfo: %s\n", gai_strerror(ret)); |