summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@derf.homelinux.org>2009-08-10 19:49:14 +0200
committerDaniel Friesel <derf@derf.homelinux.org>2009-08-10 19:49:14 +0200
commit84beab1ef6f778949023e4f050c9b2329f06f305 (patch)
tree5da62bf20fdea032a1b4510606e80bce889b5b36
parent01661c8120aa73ae854c344d5c63f176762718a6 (diff)
Added -r option to always resolve the RDNS
-rw-r--r--src/host.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/host.c b/src/host.c
index aa4372e..60ddb58 100644
--- a/src/host.c
+++ b/src/host.c
@@ -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));