summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorshin <shin@FreeBSD.org>2000-01-13 05:37:51 +0000
committershin <shin@FreeBSD.org>2000-01-13 05:37:51 +0000
commit773759d8c902912c077046a8f46836693f1efd30 (patch)
tree93a3a79101535f9e7fee2ee279168043cfacec05 /lib/libc
parenta42e26b36b3215a4f8de35bc1a4183683eca86ae (diff)
downloadFreeBSD-src-773759d8c902912c077046a8f46836693f1efd30.zip
FreeBSD-src-773759d8c902912c077046a8f46836693f1efd30.tar.gz
added IPv4 mapped IPv6 addr consideration for getaddrinfo() reverse lookup case
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/net/getaddrinfo.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index 3a415dd..17824f5 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -813,7 +813,10 @@ get_name(addr, afd, res, numaddr, pai, servname)
hp = getipnodebyaddr(addr, afd->a_addrlen, afd->a_af, &h_error);
if (hp && hp->h_name && hp->h_name[0] && hp->h_addr_list[0]) {
- GET_AI(cur, afd, hp->h_addr_list[0]);
+ if (hp->h_addrtype == afd->a_af)
+ GET_AI(cur, afd, hp->h_addr_list[0]);
+ else /* IPv4 mapped IPv6 addr case */
+ GET_AI(cur, afd, numaddr);
GET_PORT(cur, servname);
GET_CANONNAME(cur, hp->h_name);
} else {
OpenPOWER on IntegriCloud