mirror of
http://thekelleys.org.uk/git/dnsmasq.git
synced 2026-10-27 12:31:03 +00:00
Better fix for interfaces without broadcast address on *BSD.
This commit is contained in:
1 parent
37c9ccebd1
commit
39f6a04ca4
1 file changed
+5
-2
@@ -111,7 +111,7 @@ int iface_enumerate(int family, void *parm, int (*callback)())
|
||||
{
|
||||
int iface_index = if_nametoindex(addrs->ifa_name);
|
||||
|
||||
if (iface_index == 0 || !addrs->ifa_addr || !addrs->ifa_netmask || !addrs->ifa_broadaddr)
|
||||
if (iface_index == 0 || !addrs->ifa_addr || !addrs->ifa_netmask)
|
||||
continue;
|
||||
|
||||
if (family == AF_INET)
|
||||
@@ -119,7 +119,10 @@ int iface_enumerate(int family, void *parm, int (*callback)())
|
||||
struct in_addr addr, netmask, broadcast;
|
||||
addr = ((struct sockaddr_in *) addrs->ifa_addr)->sin_addr;
|
||||
netmask = ((struct sockaddr_in *) addrs->ifa_netmask)->sin_addr;
|
||||
broadcast = ((struct sockaddr_in *) addrs->ifa_broadaddr)->sin_addr;
|
||||
if (addrs->ifa_broadaddr)
|
||||
broadcast = ((struct sockaddr_in *) addrs->ifa_broadaddr)->sin_addr;
|
||||
else
|
||||
broadcast.s_addr = 0;
|
||||
if (!((*callback)(addr, iface_index, netmask, broadcast, parm)))
|
||||
goto err;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user