Temporarily revert rev 244678. This is causing loopback problems with

the lo (loopback) interfaces.
This commit is contained in:
Peter Wemm 2013-01-03 10:21:28 +00:00
parent 0840e960f9
commit 8a1163e82f
2 changed files with 3 additions and 17 deletions

View File

@ -819,19 +819,14 @@ in_ifinit(struct ifnet *ifp, struct in_ifaddr *ia, struct sockaddr_in *sin,
return (error);
/*
* Give the interface a chance to initialize if this is its first
* address, and to validate the address if necessary.
*
* Historically, drivers managed IFF_UP flag theirselves, so we
* need to check whether driver did that.
* Give the interface a chance to initialize
* if this is its first address,
* and to validate the address if necessary.
*/
flags = ifp->if_flags;
if (ifp->if_ioctl != NULL &&
(error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia)) != 0)
/* LIST_REMOVE(ia, ia_hash) is done in in_control */
return (error);
if ((ifp->if_flags & IFF_UP) && (flags & IFF_UP) == 0)
if_up(ifp);
/*
* Be compatible with network classes, if netmask isn't supplied,

View File

@ -1874,18 +1874,9 @@ in6_ifinit(struct ifnet *ifp, struct in6_ifaddr *ia,
ia->ia_addr = *sin6;
if (ifacount <= 1 && ifp->if_ioctl) {
int flags;
/*
* Historically, drivers managed IFF_UP flag theirselves, so we
* need to check whether driver did that.
*/
flags = ifp->if_flags;
error = (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia);
if (error)
return (error);
if ((ifp->if_flags & IFF_UP) && (flags & IFF_UP) == 0)
if_up(ifp);
}
ia->ia_ifa.ifa_metric = ifp->if_metric;