From 25bbc9a70b23853a4437755a23e8343266347817 Mon Sep 17 00:00:00 2001 From: itojun <> Date: Mon, 29 Jul 2002 10:15:30 +0000 Subject: query ip6.arpa then ip6.int for IPv6 reverse lookup. follows RFC3152. (need some string-manipulation cleanup near here) --- src/lib/libc/net/gethostnamadr.c | 10 ++++++++-- 1 file 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 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.49 2002/07/25 21:13:45 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.50 2002/07/29 10:15:30 itojun Exp $"; #endif /* LIBC_SCCS and not lint */ #include @@ -713,7 +713,6 @@ gethostbyaddr(addr, len, af) qp += sprintf(qp, "%x.%x.", uaddr[n] & 0xf, (uaddr[n] >> 4) & 0xf); } - strcpy(qp, "ip6.int"); break; } @@ -732,8 +731,15 @@ gethostbyaddr(addr, len, af) break; #endif case 'b': + if (af == AF_INET6) + strcpy(qp, "ip6.arpa"); n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, sizeof buf.buf); + if (n < 0 && af == AF_INET6) { + strcpy(qp, "ip6.int"); + n = res_query(qbuf, C_IN, T_PTR, + (u_char *)buf.buf, sizeof buf.buf); + } if (n < 0) { #ifdef DEBUG if (_res.options & RES_DEBUG) -- cgit v1.2.3-55-g6feb