summaryrefslogtreecommitdiff
path: root/src/regress/lib/libc/asr
diff options
context:
space:
mode:
authoreric <>2012-07-29 19:51:36 +0000
committereric <>2012-07-29 19:51:36 +0000
commit27e778b873a136bae1eed4d781f87719907f8250 (patch)
tree0a9d5ca5ce2843c50e979b3cad4f6e145f3a5832 /src/regress/lib/libc/asr
parentf8a386ac14dcb1fa3e2d4e850165c453e758c793 (diff)
downloadopenbsd-27e778b873a136bae1eed4d781f87719907f8250.tar.gz
openbsd-27e778b873a136bae1eed4d781f87719907f8250.tar.bz2
openbsd-27e778b873a136bae1eed4d781f87719907f8250.zip
add a flag to choose between gethostbyname and gethostbyaddr
Diffstat (limited to 'src/regress/lib/libc/asr')
-rw-r--r--src/regress/lib/libc/asr/bin/gethostnamadr.c21
-rw-r--r--src/regress/lib/libc/asr/regress.sh4
2 files changed, 13 insertions, 12 deletions
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 @@
1/* $OpenBSD: gethostnamadr.c,v 1.1.1.1 2012/07/13 17:49:54 eric Exp $ */ 1/* $OpenBSD: gethostnamadr.c,v 1.2 2012/07/29 19:51:36 eric Exp $ */
2/* 2/*
3 * Copyright (c) 2012 Eric Faurot <eric@openbsd.org> 3 * Copyright (c) 2012 Eric Faurot <eric@openbsd.org>
4 * 4 *
@@ -40,14 +40,14 @@ usage(void)
40int 40int
41main(int argc, char *argv[]) 41main(int argc, char *argv[])
42{ 42{
43 int i, ch, isname, family = AF_INET; 43 int i, ch, aflag, family = AF_INET;
44 struct hostent *h; 44 struct hostent *h;
45 char *host; 45 char *host;
46 char addr[16]; 46 char addr[16];
47 int addraf;
48 int addrlen; 47 int addrlen;
49 48
50 while((ch = getopt(argc, argv, "46e")) != -1) { 49 aflag = 0;
50 while((ch = getopt(argc, argv, "46ae")) != -1) {
51 switch(ch) { 51 switch(ch) {
52 case '4': 52 case '4':
53 family = AF_INET; 53 family = AF_INET;
@@ -55,6 +55,9 @@ main(int argc, char *argv[])
55 case '6': 55 case '6':
56 family = AF_INET6; 56 family = AF_INET6;
57 break; 57 break;
58 case 'a':
59 aflag = 1;
60 break;
58 case 'e': 61 case 'e':
59 long_err += 1; 62 long_err += 1;
60 break; 63 break;
@@ -73,20 +76,18 @@ main(int argc, char *argv[])
73 printf("===> \"%s\"\n", argv[i]); 76 printf("===> \"%s\"\n", argv[i]);
74 host = gethostarg(argv[i]); 77 host = gethostarg(argv[i]);
75 78
76 if (addr_from_str(addr, &addraf, &addrlen, argv[i]) == -1) 79 if (aflag && addr_from_str(addr, &family, &addrlen, host) == -1)
77 isname = 1; 80 errx(1, "bad address");
78 else
79 isname = 0;
80 81
81 errno = 0; 82 errno = 0;
82 h_errno = 0; 83 h_errno = 0;
83 gai_errno = 0; 84 gai_errno = 0;
84 rrset_errno = 0; 85 rrset_errno = 0;
85 86
86 if (isname) 87 if (aflag == 0)
87 h = gethostbyname2(host, family); 88 h = gethostbyname2(host, family);
88 else 89 else
89 h = gethostbyaddr(addr, addrlen, addraf); 90 h = gethostbyaddr(addr, addrlen, family);
90 if (h) 91 if (h)
91 print_hostent(h); 92 print_hostent(h);
92 print_errors(); 93 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 @@
1# $OpenBSD: regress.sh,v 1.1.1.1 2012/07/13 17:49:53 eric Exp $ 1# $OpenBSD: regress.sh,v 1.2 2012/07/29 19:51:36 eric Exp $
2 2
3. regress.subr 3. regress.subr
4 4
@@ -40,7 +40,7 @@ test_gethostbyname()
40test_gethostbyaddr() 40test_gethostbyaddr()
41{ 41{
42 for i in $@; do 42 for i in $@; do
43 regress gethostnamadr $i 43 regress gethostnamadr -a $i
44 done 44 done
45} 45}
46 46