Hello, the question has popped up while on recent code review of some Solaris specific bug fixes: do we still need a code in diff below or is it OK to proceed and commit the diff?
The chunk below uses bytes 2 and 3 to derive a scope of link local address. It seems to me those bytes/octets are always zero in IPv6 link scope addresses these days, unless I'm missing something. I was not able to identify its counter part in current kernel, which would make octets 2 & 3 non-zero, so it makes me thinking it should be OK to remove the whole chunk below. thanks and regards sashan note __KAME__ is defined, the chunk below is getting compiled currently. --------8<---------------8<---------------8<------------------8<-------- diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c index cef0aa2474f..24175de046c 100644 --- a/sbin/pfctl/pfctl_parser.c +++ b/sbin/pfctl/pfctl_parser.c @@ -1361,21 +1361,6 @@ ifa_load(void) err(1, "%s: calloc", __func__); n->af = ifa->ifa_addr->sa_family; n->ifa_flags = ifa->ifa_flags; -#ifdef __KAME__ - if (n->af == AF_INET6 && - IN6_IS_ADDR_LINKLOCAL(&((struct sockaddr_in6 *) - ifa->ifa_addr)->sin6_addr) && - ((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_scope_id == - 0) { - struct sockaddr_in6 *sin6; - - sin6 = (struct sockaddr_in6 *)ifa->ifa_addr; - sin6->sin6_scope_id = sin6->sin6_addr.s6_addr[2] << 8 | - sin6->sin6_addr.s6_addr[3]; - sin6->sin6_addr.s6_addr[2] = 0; - sin6->sin6_addr.s6_addr[3] = 0; - } -#endif n->ifindex = 0; if (n->af == AF_LINK) n->ifindex = ((struct sockaddr_dl *)