Temporarily revert rev 244678. This is causing loopback problems with
the lo (loopback) interfaces.
This commit is contained in:
parent
0840e960f9
commit
8a1163e82f
@ -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,
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user