diff options
Diffstat (limited to 'src/regress/lib/libc/asr')
| -rw-r--r-- | src/regress/lib/libc/asr/bin/gethostnamadr.c | 21 | ||||
| -rw-r--r-- | src/regress/lib/libc/asr/regress.sh | 4 |
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) | |||
| 40 | int | 40 | int |
| 41 | main(int argc, char *argv[]) | 41 | main(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() | |||
| 40 | test_gethostbyaddr() | 40 | test_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 | ||
