From 5fab55441ced740620008e2387b555f7080e093f Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 14 May 2008 22:33:51 +0000 Subject: [PATCH] * sysdeps/posix/getaddrinfo.c (get_scope): Loopback addresses have to be treated like link-local addresses. --- ChangeLog | 3 +++ sysdeps/posix/getaddrinfo.c | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5a06103..eec1fb9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2008-05-14 Ulrich Drepper + * sysdeps/posix/getaddrinfo.c (get_scope): Loopback addresses have + to be treated like link-local addresses. + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Add _res_hconf_init if necessary. diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index c8965ef..855c5a5 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -1112,7 +1112,10 @@ get_scope (const struct sockaddr_in6 *in6) { if (! IN6_IS_ADDR_MULTICAST (&in6->sin6_addr)) { - if (IN6_IS_ADDR_LINKLOCAL (&in6->sin6_addr)) + if (IN6_IS_ADDR_LINKLOCAL (&in6->sin6_addr) + /* RFC 4291 2.5.3 says that the loopback address is to be + treated like a link-local address. */ + || IN6_IS_ADDR_LOOPBACK (&in6->sin6_addr)) scope = 2; else if (IN6_IS_ADDR_SITELOCAL (&in6->sin6_addr)) scope = 5; -- 2.7.4