make sure primary ip is used for net_interface_config

This commit is contained in:
Doug MacEachern 2006-11-03 19:28:51 +00:00
parent 64be681de6
commit ef0752391c
1 changed files with 11 additions and 15 deletions

View File

@ -2264,22 +2264,18 @@ sigar_net_interface_config_get(sigar_t *sigar,
if (status == SIGAR_OK) {
char *addr;
if (adapter->CurrentIpAddress) {
addr = adapter->CurrentIpAddress->IpAddress.String;
sigar_net_address_set(ifconfig->address,
inet_addr(addr));
addr = adapter->CurrentIpAddress->IpMask.String;
sigar_net_address_set(ifconfig->netmask,
inet_addr(addr));
}
else {
addr = adapter->IpAddressList.IpAddress.String;
sigar_net_address_set(ifconfig->address,
inet_addr(addr));
addr = adapter->IpAddressList.IpMask.String;
sigar_net_address_set(ifconfig->netmask,
inet_addr(addr));
IP_ADDR_STRING *ip = &adapter->IpAddressList;
/* last address in the list is the primary */
while (ip->Next) {
ip = ip->Next;
}
addr = ip->IpAddress.String;
sigar_net_address_set(ifconfig->address,
inet_addr(addr));
addr = ip->IpMask.String;
sigar_net_address_set(ifconfig->netmask,
inet_addr(addr));
}
/* hack for MS_LOOPBACK_ADAPTER */