diff options
author | Cody Peter Mello <cody.mello@joyent.com> | 2015-12-04 18:42:41 +0000 |
---|---|---|
committer | Cody Peter Mello <cody.mello@joyent.com> | 2015-12-18 18:36:35 +0000 |
commit | a92bddf8b7b9c051ae078b115e9dbaa94b89a5dd (patch) | |
tree | 6c4299dd3a3d2adf578965e57fa01d0c92bfc066 | |
parent | bc334109e1dbbb71d75cfe8211fa07b35942971a (diff) | |
download | illumos-joyent-a92bddf8b7b9c051ae078b115e9dbaa94b89a5dd.tar.gz |
OS-5004 SIOCGLIFADDR doesn't set sin6_scope_id for link-local IPv6 addresses
Reviewed by: Dan McDonald <danmcd@omniti.com>
-rw-r--r-- | usr/src/uts/common/inet/ip/ip_if.c | 4 |
1 files changed, 4 insertions, 0 deletions
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); |