Fix the SIOC[DG]LIFADDR ioctls in in_lifaddr_ioctl() to work with IPv4
interface address rather than IPv6. Submitted by: hrs Reviewed by: bz MFC after: 1 week
This commit is contained in:
parent
ba89031aea
commit
0823c29b81
@ -735,7 +735,7 @@ in_lifaddr_ioctl(struct socket *so, u_long cmd, caddr_t data,
|
||||
if (iflr->flags & IFLR_PREFIX)
|
||||
return (EINVAL);
|
||||
|
||||
/* copy args to in_aliasreq, perform ioctl(SIOCAIFADDR_IN6). */
|
||||
/* copy args to in_aliasreq, perform ioctl(SIOCAIFADDR). */
|
||||
bzero(&ifra, sizeof(ifra));
|
||||
bcopy(iflr->iflr_name, ifra.ifra_name,
|
||||
sizeof(ifra.ifra_name));
|
||||
@ -785,7 +785,7 @@ in_lifaddr_ioctl(struct socket *so, u_long cmd, caddr_t data,
|
||||
}
|
||||
|
||||
TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
|
||||
if (ifa->ifa_addr->sa_family != AF_INET6)
|
||||
if (ifa->ifa_addr->sa_family != AF_INET)
|
||||
continue;
|
||||
if (match.s_addr == 0)
|
||||
break;
|
||||
@ -817,7 +817,7 @@ in_lifaddr_ioctl(struct socket *so, u_long cmd, caddr_t data,
|
||||
} else {
|
||||
struct in_aliasreq ifra;
|
||||
|
||||
/* fill in_aliasreq and do ioctl(SIOCDIFADDR_IN6) */
|
||||
/* fill in_aliasreq and do ioctl(SIOCDIFADDR) */
|
||||
bzero(&ifra, sizeof(ifra));
|
||||
bcopy(iflr->iflr_name, ifra.ifra_name,
|
||||
sizeof(ifra.ifra_name));
|
||||
|
Loading…
x
Reference in New Issue
Block a user