diff options
| author | itojun <> | 2002-07-29 10:15:30 +0000 |
|---|---|---|
| committer | itojun <> | 2002-07-29 10:15:30 +0000 |
| commit | 25bbc9a70b23853a4437755a23e8343266347817 (patch) | |
| tree | 532340e53fe01787e9f94b920ab21598bf9d8ef1 /src/lib/libc | |
| parent | 8092efea6856a632fe16c823f241d12cd8b791c6 (diff) | |
| download | openbsd-25bbc9a70b23853a4437755a23e8343266347817.tar.gz openbsd-25bbc9a70b23853a4437755a23e8343266347817.tar.bz2 openbsd-25bbc9a70b23853a4437755a23e8343266347817.zip | |
query ip6.arpa then ip6.int for IPv6 reverse lookup. follows RFC3152.
(need some string-manipulation cleanup near here)
Diffstat (limited to 'src/lib/libc')
| -rw-r--r-- | src/lib/libc/net/gethostnamadr.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lib/libc/net/gethostnamadr.c b/src/lib/libc/net/gethostnamadr.c index f1aa448670..dae31eaedb 100644 --- a/src/lib/libc/net/gethostnamadr.c +++ b/src/lib/libc/net/gethostnamadr.c | |||
| @@ -52,7 +52,7 @@ | |||
| 52 | */ | 52 | */ |
| 53 | 53 | ||
| 54 | #if defined(LIBC_SCCS) && !defined(lint) | 54 | #if defined(LIBC_SCCS) && !defined(lint) |
| 55 | static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.49 2002/07/25 21:13:45 deraadt Exp $"; | 55 | static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.50 2002/07/29 10:15:30 itojun Exp $"; |
| 56 | #endif /* LIBC_SCCS and not lint */ | 56 | #endif /* LIBC_SCCS and not lint */ |
| 57 | 57 | ||
| 58 | #include <sys/param.h> | 58 | #include <sys/param.h> |
| @@ -713,7 +713,6 @@ gethostbyaddr(addr, len, af) | |||
| 713 | qp += sprintf(qp, "%x.%x.", | 713 | qp += sprintf(qp, "%x.%x.", |
| 714 | uaddr[n] & 0xf, (uaddr[n] >> 4) & 0xf); | 714 | uaddr[n] & 0xf, (uaddr[n] >> 4) & 0xf); |
| 715 | } | 715 | } |
| 716 | strcpy(qp, "ip6.int"); | ||
| 717 | break; | 716 | break; |
| 718 | } | 717 | } |
| 719 | 718 | ||
| @@ -732,8 +731,15 @@ gethostbyaddr(addr, len, af) | |||
| 732 | break; | 731 | break; |
| 733 | #endif | 732 | #endif |
| 734 | case 'b': | 733 | case 'b': |
| 734 | if (af == AF_INET6) | ||
| 735 | strcpy(qp, "ip6.arpa"); | ||
| 735 | n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, | 736 | n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, |
| 736 | sizeof buf.buf); | 737 | sizeof buf.buf); |
| 738 | if (n < 0 && af == AF_INET6) { | ||
| 739 | strcpy(qp, "ip6.int"); | ||
| 740 | n = res_query(qbuf, C_IN, T_PTR, | ||
| 741 | (u_char *)buf.buf, sizeof buf.buf); | ||
| 742 | } | ||
| 737 | if (n < 0) { | 743 | if (n < 0) { |
| 738 | #ifdef DEBUG | 744 | #ifdef DEBUG |
| 739 | if (_res.options & RES_DEBUG) | 745 | if (_res.options & RES_DEBUG) |
