From 5846c4e2692a18a922cf07ab6c3ec20efa61b4d3 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 14 May 2008 22:47:15 +0000 Subject: (match_prefix): Don't treat IPv4 loopback address special when converting to v4 mapped addressed. --- sysdeps/posix/getaddrinfo.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'sysdeps/posix/getaddrinfo.c') diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 855c5a5c06..8908fc10c3 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -1248,20 +1248,14 @@ match_prefix (const struct sockaddr_in6 *in6, { const struct sockaddr_in *in = (const struct sockaddr_in *) in6; - /* Convert to IPv6 address. */ + /* Construct a V4-to-6 mapped address. */ in6_mem.sin6_family = PF_INET6; in6_mem.sin6_port = in->sin_port; in6_mem.sin6_flowinfo = 0; - if (in->sin_addr.s_addr == htonl (0x7f000001)) - in6_mem.sin6_addr = (struct in6_addr) IN6ADDR_LOOPBACK_INIT; - else - { - /* Construct a V4-to-6 mapped address. */ - memset (&in6_mem.sin6_addr, '\0', sizeof (in6_mem.sin6_addr)); - in6_mem.sin6_addr.s6_addr16[5] = 0xffff; - in6_mem.sin6_addr.s6_addr32[3] = in->sin_addr.s_addr; - in6_mem.sin6_scope_id = 0; - } + memset (&in6_mem.sin6_addr, '\0', sizeof (in6_mem.sin6_addr)); + in6_mem.sin6_addr.s6_addr16[5] = 0xffff; + in6_mem.sin6_addr.s6_addr32[3] = in->sin_addr.s_addr; + in6_mem.sin6_scope_id = 0; in6 = &in6_mem; } -- cgit 1.4.1