dhclient: do not add 0.0.0.0 interface alias.
Subscribers: imp Differential Revision: https://reviews.freebsd.org/D38908
This commit is contained in:
parent
055776c84a
commit
e2dc8d789f
@ -318,13 +318,12 @@ fi
|
|||||||
case $reason in
|
case $reason in
|
||||||
MEDIUM)
|
MEDIUM)
|
||||||
eval "$IFCONFIG $interface $medium"
|
eval "$IFCONFIG $interface $medium"
|
||||||
eval "$IFCONFIG $interface inet -alias 0.0.0.0 $medium" >/dev/null 2>&1
|
|
||||||
sleep 1
|
sleep 1
|
||||||
;;
|
;;
|
||||||
|
|
||||||
PREINIT)
|
PREINIT)
|
||||||
delete_old_alias
|
delete_old_alias
|
||||||
$IFCONFIG $interface inet alias 0.0.0.0 netmask 255.0.0.0 broadcast 255.255.255.255 up
|
eval "$IFCONFIG $interface up"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
ARPCHECK|ARPSEND)
|
ARPCHECK|ARPSEND)
|
||||||
|
@ -78,6 +78,7 @@ discover_interfaces(struct interface_info *iface)
|
|||||||
{
|
{
|
||||||
struct ifaddrs *ifap, *ifa;
|
struct ifaddrs *ifap, *ifa;
|
||||||
struct ifreq *tif;
|
struct ifreq *tif;
|
||||||
|
int len = IFNAMSIZ + sizeof(struct sockaddr_storage);
|
||||||
|
|
||||||
if (getifaddrs(&ifap) != 0)
|
if (getifaddrs(&ifap) != 0)
|
||||||
error("getifaddrs failed");
|
error("getifaddrs failed");
|
||||||
@ -118,26 +119,14 @@ discover_interfaces(struct interface_info *iface)
|
|||||||
iface->hw_address.htype = HTYPE_ETHER; /* XXX */
|
iface->hw_address.htype = HTYPE_ETHER; /* XXX */
|
||||||
memcpy(iface->hw_address.haddr,
|
memcpy(iface->hw_address.haddr,
|
||||||
LLADDR(foo), foo->sdl_alen);
|
LLADDR(foo), foo->sdl_alen);
|
||||||
} else if (ifa->ifa_addr->sa_family == AF_INET) {
|
|
||||||
struct sockaddr_in foo;
|
|
||||||
struct iaddr addr;
|
|
||||||
|
|
||||||
memcpy(&foo, ifa->ifa_addr, sizeof(foo));
|
|
||||||
if (foo.sin_addr.s_addr == htonl(INADDR_LOOPBACK))
|
|
||||||
continue;
|
|
||||||
if (!iface->ifp) {
|
|
||||||
if ((tif = calloc(1, sizeof(struct ifreq)))
|
|
||||||
== NULL)
|
|
||||||
error("no space to remember ifp");
|
|
||||||
strlcpy(tif->ifr_name, ifa->ifa_name, IFNAMSIZ);
|
|
||||||
memcpy(&tif->ifr_addr, ifa->ifa_addr,
|
|
||||||
ifa->ifa_addr->sa_len);
|
|
||||||
iface->ifp = tif;
|
|
||||||
iface->primary_address = foo.sin_addr;
|
|
||||||
}
|
|
||||||
addr.len = 4;
|
|
||||||
memcpy(addr.iabuf, &foo.sin_addr.s_addr, addr.len);
|
|
||||||
}
|
}
|
||||||
|
if (!iface->ifp) {
|
||||||
|
if ((tif = calloc(1, len)) == NULL)
|
||||||
|
error("no space to remember ifp");
|
||||||
|
strlcpy(tif->ifr_name, ifa->ifa_name, IFNAMSIZ);
|
||||||
|
iface->ifp = tif;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!iface->ifp)
|
if (!iface->ifp)
|
||||||
|
Loading…
Reference in New Issue
Block a user