Tweaking based on feedback: default_interface gets a more appropriate name and
sigar_get_default_gateway now gathers both pieces of information.
This commit is contained in:
parent
d9f37b39a4
commit
4fdcee3635
|
@ -936,7 +936,7 @@ use vars qw(%classes %cmds);
|
|||
plat => ''
|
||||
},
|
||||
{
|
||||
name => 'default_interface', type => 'String',
|
||||
name => 'default_gateway_interface', type => 'String',
|
||||
desc => '',
|
||||
plat => ''
|
||||
},
|
||||
|
|
|
@ -527,7 +527,7 @@ typedef struct {
|
|||
|
||||
typedef struct {
|
||||
char default_gateway[SIGAR_INET6_ADDRSTRLEN];
|
||||
char default_interface[16];
|
||||
char default_gateway_interface[16];
|
||||
char host_name[SIGAR_MAXHOSTNAMELEN];
|
||||
char domain_name[SIGAR_MAXDOMAINNAMELEN];
|
||||
char primary_dns[SIGAR_INET6_ADDRSTRLEN];
|
||||
|
|
39
src/sigar.c
39
src/sigar.c
|
@ -1236,7 +1236,7 @@ int sigar_who_list_get(sigar_t *sigar,
|
|||
#endif
|
||||
|
||||
static int sigar_get_default_gateway(sigar_t *sigar,
|
||||
char *gateway)
|
||||
sigar_net_info_t *netinfo)
|
||||
{
|
||||
int status, i;
|
||||
sigar_net_route_list_t routelist;
|
||||
|
@ -1252,7 +1252,11 @@ static int sigar_get_default_gateway(sigar_t *sigar,
|
|||
{
|
||||
sigar_net_address_to_string(sigar,
|
||||
&routelist.data[i].gateway,
|
||||
gateway);
|
||||
netinfo->default_gateway);
|
||||
|
||||
SIGAR_STRNCPY(netinfo->default_gateway_interface,
|
||||
routelist.data[i].ifname,
|
||||
sizeof(netinfo->default_gateway_interface));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1262,33 +1266,6 @@ static int sigar_get_default_gateway(sigar_t *sigar,
|
|||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
static int sigar_get_default_interface(sigar_t *sigar,
|
||||
char *interface, int interfacelen)
|
||||
{
|
||||
int status, i;
|
||||
char *ifname;
|
||||
sigar_net_route_list_t routelist;
|
||||
|
||||
status = sigar_net_route_list_get(sigar, &routelist);
|
||||
if (status != SIGAR_OK) {
|
||||
return status;
|
||||
}
|
||||
|
||||
for (i=0; i<routelist.number; i++) {
|
||||
if ((routelist.data[i].flags & SIGAR_RTF_GATEWAY) &&
|
||||
(routelist.data[i].destination.addr.in == 0))
|
||||
{
|
||||
SIGAR_STRNCPY(interface, routelist.data[i].ifname, interfacelen);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
sigar_net_route_list_destroy(sigar, &routelist);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
|
||||
int sigar_net_info_get(sigar_t *sigar,
|
||||
sigar_net_info_t *netinfo)
|
||||
{
|
||||
|
@ -1343,9 +1320,7 @@ int sigar_net_info_get(sigar_t *sigar,
|
|||
netinfo->domain_name[0] = '\0';
|
||||
}
|
||||
|
||||
sigar_get_default_gateway(sigar, netinfo->default_gateway);
|
||||
sigar_get_default_interface(sigar, netinfo->default_interface,
|
||||
sizeof(netinfo->default_interface));
|
||||
sigar_get_default_gateway(sigar, netinfo);
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue