dwBCastAddr is a flag, not an address
This commit is contained in:
parent
fc9fdb3941
commit
a73e93ae91
|
@ -2399,9 +2399,17 @@ sigar_net_interface_config_get(sigar_t *sigar,
|
||||||
sigar_net_address_set(ifconfig->netmask,
|
sigar_net_address_set(ifconfig->netmask,
|
||||||
ipaddr->dwMask);
|
ipaddr->dwMask);
|
||||||
|
|
||||||
/* wtf is up w/ dwBCastAddr? */
|
if (ifr->dwType != MIB_IF_TYPE_LOOPBACK) {
|
||||||
|
long bcast = ipaddr->dwAddr & ipaddr->dwMask;
|
||||||
|
|
||||||
|
if (ipaddr->dwBCastAddr) {
|
||||||
|
bcast |= ~ipaddr->dwMask;
|
||||||
|
ifconfig->flags |= SIGAR_IFF_BROADCAST;
|
||||||
|
}
|
||||||
|
|
||||||
sigar_net_address_set(ifconfig->broadcast,
|
sigar_net_address_set(ifconfig->broadcast,
|
||||||
ipaddr->dwAddr|0xFF000000);
|
bcast);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hack for MS_LOOPBACK_ADAPTER */
|
/* hack for MS_LOOPBACK_ADAPTER */
|
||||||
|
@ -2417,8 +2425,7 @@ sigar_net_interface_config_get(sigar_t *sigar,
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (ipaddr) {
|
if (ipaddr) {
|
||||||
ifconfig->flags |=
|
ifconfig->flags |= SIGAR_IFF_MULTICAST;
|
||||||
SIGAR_IFF_BROADCAST|SIGAR_IFF_MULTICAST;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SIGAR_SSTRCPY(ifconfig->type,
|
SIGAR_SSTRCPY(ifconfig->type,
|
||||||
|
|
Loading…
Reference in New Issue