From a92bddf8b7b9c051ae078b115e9dbaa94b89a5dd Mon Sep 17 00:00:00 2001 From: Cody Peter Mello Date: Fri, 4 Dec 2015 18:42:41 +0000 Subject: OS-5004 SIOCGLIFADDR doesn't set sin6_scope_id for link-local IPv6 addresses Reviewed by: Dan McDonald --- usr/src/uts/common/inet/ip/ip_if.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'usr/src') diff --git a/usr/src/uts/common/inet/ip/ip_if.c b/usr/src/uts/common/inet/ip/ip_if.c index 16a9b7e349..9a2da47620 100644 --- a/usr/src/uts/common/inet/ip/ip_if.c +++ b/usr/src/uts/common/inet/ip/ip_if.c @@ -9948,6 +9948,10 @@ ip_sioctl_get_addr(ipif_t *ipif, sin_t *sin, queue_t *q, mblk_t *mp, *sin6 = sin6_null; sin6->sin6_family = AF_INET6; sin6->sin6_addr = ipif->ipif_v6lcl_addr; + if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) { + sin6->sin6_scope_id = + ipif->ipif_ill->ill_phyint->phyint_ifindex; + } ASSERT(ipip->ipi_cmd_type == LIF_CMD); lifr->lifr_addrlen = ip_mask_to_plen_v6(&ipif->ipif_v6net_mask); -- cgit v1.2.3