summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoritojun <>2002-07-29 10:15:30 +0000
committeritojun <>2002-07-29 10:15:30 +0000
commit25bbc9a70b23853a4437755a23e8343266347817 (patch)
tree532340e53fe01787e9f94b920ab21598bf9d8ef1 /src
parent8092efea6856a632fe16c823f241d12cd8b791c6 (diff)
downloadopenbsd-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')
-rw-r--r--src/lib/libc/net/gethostnamadr.c10
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)
55static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.49 2002/07/25 21:13:45 deraadt Exp $"; 55static 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)