convert net_interface_config to use sigar_net_address_t
This commit is contained in:
parent
c42c645a0a
commit
86c4011c40
|
@ -674,22 +674,22 @@ my %classes = (
|
||||||
plat => '*'
|
plat => '*'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name => 'address', type => 'NetAddr',
|
name => 'address', type => 'NetAddress',
|
||||||
desc => '',
|
desc => '',
|
||||||
plat => '*'
|
plat => '*'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name => 'destination', type => 'NetAddr',
|
name => 'destination', type => 'NetAddress',
|
||||||
desc => '',
|
desc => '',
|
||||||
plat => '*'
|
plat => '*'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name => 'broadcast', type => 'NetAddr',
|
name => 'broadcast', type => 'NetAddress',
|
||||||
desc => '',
|
desc => '',
|
||||||
plat => '*'
|
plat => '*'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name => 'netmask', type => 'NetAddr',
|
name => 'netmask', type => 'NetAddress',
|
||||||
desc => '',
|
desc => '',
|
||||||
plat => '*'
|
plat => '*'
|
||||||
},
|
},
|
||||||
|
|
|
@ -481,11 +481,11 @@ typedef struct {
|
||||||
char hwaddr[64];
|
char hwaddr[64];
|
||||||
char type[64];
|
char type[64];
|
||||||
char description[256];
|
char description[256];
|
||||||
|
sigar_net_address_t address;
|
||||||
|
sigar_net_address_t destination;
|
||||||
|
sigar_net_address_t broadcast;
|
||||||
|
sigar_net_address_t netmask;
|
||||||
sigar_uint64_t
|
sigar_uint64_t
|
||||||
address,
|
|
||||||
destination,
|
|
||||||
broadcast,
|
|
||||||
netmask,
|
|
||||||
flags,
|
flags,
|
||||||
mtu,
|
mtu,
|
||||||
metric;
|
metric;
|
||||||
|
|
20
src/sigar.c
20
src/sigar.c
|
@ -1330,11 +1330,13 @@ int sigar_net_interface_config_get(sigar_t *sigar, const char *name,
|
||||||
((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr
|
((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr
|
||||||
|
|
||||||
if (!ioctl(sock, SIOCGIFADDR, &ifr)) {
|
if (!ioctl(sock, SIOCGIFADDR, &ifr)) {
|
||||||
ifconfig->address = ifr_s_addr(ifr);
|
sigar_net_address_set(ifconfig->address,
|
||||||
|
ifr_s_addr(ifr));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ioctl(sock, SIOCGIFNETMASK, &ifr)) {
|
if (!ioctl(sock, SIOCGIFNETMASK, &ifr)) {
|
||||||
ifconfig->netmask = ifr_s_addr(ifr);
|
sigar_net_address_set(ifconfig->netmask,
|
||||||
|
ifr_s_addr(ifr));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ioctl(sock, SIOCGIFFLAGS, &ifr)) {
|
if (!ioctl(sock, SIOCGIFFLAGS, &ifr)) {
|
||||||
|
@ -1367,19 +1369,22 @@ int sigar_net_interface_config_get(sigar_t *sigar, const char *name,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ifconfig->flags & IFF_LOOPBACK) {
|
if (ifconfig->flags & IFF_LOOPBACK) {
|
||||||
ifconfig->destination = ifconfig->address;
|
sigar_net_address_set(ifconfig->destination,
|
||||||
ifconfig->broadcast = 0;
|
ifconfig->address.addr.in);
|
||||||
|
sigar_net_address_set(ifconfig->broadcast, 0);
|
||||||
sigar_hwaddr_set_null(ifconfig);
|
sigar_hwaddr_set_null(ifconfig);
|
||||||
SIGAR_SSTRCPY(ifconfig->type,
|
SIGAR_SSTRCPY(ifconfig->type,
|
||||||
SIGAR_NIC_LOOPBACK);
|
SIGAR_NIC_LOOPBACK);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!ioctl(sock, SIOCGIFDSTADDR, &ifr)) {
|
if (!ioctl(sock, SIOCGIFDSTADDR, &ifr)) {
|
||||||
ifconfig->destination = ifr_s_addr(ifr);
|
sigar_net_address_set(ifconfig->destination,
|
||||||
|
ifr_s_addr(ifr));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ioctl(sock, SIOCGIFBRDADDR, &ifr)) {
|
if (!ioctl(sock, SIOCGIFBRDADDR, &ifr)) {
|
||||||
ifconfig->broadcast = ifr_s_addr(ifr);
|
sigar_net_address_set(ifconfig->broadcast,
|
||||||
|
ifr_s_addr(ifr));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SIOCGIFHWADDR)
|
#if defined(SIOCGIFHWADDR)
|
||||||
|
@ -1654,6 +1659,7 @@ SIGAR_DECLARE(int) sigar_net_address_to_string(sigar_t *sigar,
|
||||||
case SIGAR_AF_INET:
|
case SIGAR_AF_INET:
|
||||||
return sigar_inet_ntoa(sigar, address->addr.in, addr_str);
|
return sigar_inet_ntoa(sigar, address->addr.in, addr_str);
|
||||||
case SIGAR_AF_UNSPEC:
|
case SIGAR_AF_UNSPEC:
|
||||||
|
return sigar_inet_ntoa(sigar, 0, addr_str); /*XXX*/
|
||||||
default:
|
default:
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -1682,7 +1688,7 @@ static int fqdn_ip_get(sigar_t *sigar, char *name)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
sigar_inet_ntoa(sigar, ifconfig.address, name);
|
sigar_net_address_to_string(sigar, &ifconfig.address, name);
|
||||||
|
|
||||||
sigar_log_printf(sigar, SIGAR_LOG_DEBUG,
|
sigar_log_printf(sigar, SIGAR_LOG_DEBUG,
|
||||||
"[fqdn] using ip address '%s' for fqdn",
|
"[fqdn] using ip address '%s' for fqdn",
|
||||||
|
|
Loading…
Reference in New Issue