Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/rtsold/cap_llflags.c
Show First 20 Lines • Show All 85 Lines • ▼ Show 20 Lines | for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { | ||||
sin6 = (struct sockaddr_in6 *)(void *)ifa->ifa_addr; | sin6 = (struct sockaddr_in6 *)(void *)ifa->ifa_addr; | ||||
if (!IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) | if (!IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) | ||||
continue; | continue; | ||||
memset(&ifr6, 0, sizeof(ifr6)); | memset(&ifr6, 0, sizeof(ifr6)); | ||||
if (strlcpy(ifr6.ifr_name, ifname, sizeof(ifr6.ifr_name)) >= | if (strlcpy(ifr6.ifr_name, ifname, sizeof(ifr6.ifr_name)) >= | ||||
sizeof(ifr6.ifr_name)) { | sizeof(ifr6.ifr_name)) { | ||||
error = errno; | error = EINVAL; | ||||
goto out; | goto out; | ||||
} | } | ||||
memcpy(&ifr6.ifr_ifru.ifru_addr, sin6, sin6->sin6_len); | memcpy(&ifr6.ifr_ifru.ifru_addr, sin6, sin6->sin6_len); | ||||
if (ioctl(s, SIOCGIFAFLAG_IN6, &ifr6) < 0) { | if (ioctl(s, SIOCGIFAFLAG_IN6, &ifr6) < 0) { | ||||
error = errno; | error = errno; | ||||
goto out; | goto out; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 61 Lines • Show Last 20 Lines |