From 5e2a78633f7eb7fec545cddba3dabc2234bf22ca Mon Sep 17 00:00:00 2001 From: eric <> Date: Sun, 29 Jul 2012 19:51:36 +0000 Subject: add a flag to choose between gethostbyname and gethostbyaddr --- src/regress/lib/libc/asr/bin/gethostnamadr.c | 21 +++++++++++---------- src/regress/lib/libc/asr/regress.sh | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/regress/lib/libc/asr/bin/gethostnamadr.c b/src/regress/lib/libc/asr/bin/gethostnamadr.c index 336c6b9db3..b1b3e331a7 100644 --- a/src/regress/lib/libc/asr/bin/gethostnamadr.c +++ b/src/regress/lib/libc/asr/bin/gethostnamadr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: gethostnamadr.c,v 1.1.1.1 2012/07/13 17:49:54 eric Exp $ */ +/* $OpenBSD: gethostnamadr.c,v 1.2 2012/07/29 19:51:36 eric Exp $ */ /* * Copyright (c) 2012 Eric Faurot * @@ -40,14 +40,14 @@ usage(void) int main(int argc, char *argv[]) { - int i, ch, isname, family = AF_INET; + int i, ch, aflag, family = AF_INET; struct hostent *h; char *host; char addr[16]; - int addraf; int addrlen; - while((ch = getopt(argc, argv, "46e")) != -1) { + aflag = 0; + while((ch = getopt(argc, argv, "46ae")) != -1) { switch(ch) { case '4': family = AF_INET; @@ -55,6 +55,9 @@ main(int argc, char *argv[]) case '6': family = AF_INET6; break; + case 'a': + aflag = 1; + break; case 'e': long_err += 1; break; @@ -73,20 +76,18 @@ main(int argc, char *argv[]) printf("===> \"%s\"\n", argv[i]); host = gethostarg(argv[i]); - if (addr_from_str(addr, &addraf, &addrlen, argv[i]) == -1) - isname = 1; - else - isname = 0; + if (aflag && addr_from_str(addr, &family, &addrlen, host) == -1) + errx(1, "bad address"); errno = 0; h_errno = 0; gai_errno = 0; rrset_errno = 0; - if (isname) + if (aflag == 0) h = gethostbyname2(host, family); else - h = gethostbyaddr(addr, addrlen, addraf); + h = gethostbyaddr(addr, addrlen, family); if (h) print_hostent(h); print_errors(); diff --git a/src/regress/lib/libc/asr/regress.sh b/src/regress/lib/libc/asr/regress.sh index b4d1c1db59..ffd7595cba 100644 --- a/src/regress/lib/libc/asr/regress.sh +++ b/src/regress/lib/libc/asr/regress.sh @@ -1,4 +1,4 @@ -# $OpenBSD: regress.sh,v 1.1.1.1 2012/07/13 17:49:53 eric Exp $ +# $OpenBSD: regress.sh,v 1.2 2012/07/29 19:51:36 eric Exp $ . regress.subr @@ -40,7 +40,7 @@ test_gethostbyname() test_gethostbyaddr() { for i in $@; do - regress gethostnamadr $i + regress gethostnamadr -a $i done } -- cgit v1.2.3-55-g6feb