(SIGAR-199) arp_list hpux impl
This commit is contained in:
parent
353a3e7b07
commit
105031e7c1
@ -1226,7 +1226,58 @@ int sigar_nfs_server_v3_get(sigar_t *sigar,
|
|||||||
int sigar_arp_list_get(sigar_t *sigar,
|
int sigar_arp_list_get(sigar_t *sigar,
|
||||||
sigar_arp_list_t *arplist)
|
sigar_arp_list_t *arplist)
|
||||||
{
|
{
|
||||||
return SIGAR_ENOTIMPL;
|
int status, count, i;
|
||||||
|
unsigned int len;
|
||||||
|
struct nmparms parms;
|
||||||
|
mib_ipNetToMediaEnt *entries;
|
||||||
|
sigar_arp_t *arp;
|
||||||
|
|
||||||
|
len = sizeof(count);
|
||||||
|
parms.objid = ID_ipNetToMediaTableNum;
|
||||||
|
parms.buffer = &count;
|
||||||
|
parms.len = &len;
|
||||||
|
|
||||||
|
if ((status = sigar_get_mib_info(sigar, &parms)) != SIGAR_OK) {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
len = count * sizeof(*entries);
|
||||||
|
entries = malloc(len);
|
||||||
|
|
||||||
|
parms.objid = ID_ipNetToMediaTable;
|
||||||
|
parms.buffer = entries;
|
||||||
|
parms.len = &len;
|
||||||
|
|
||||||
|
if ((status = sigar_get_mib_info(sigar, &parms)) != SIGAR_OK) {
|
||||||
|
free(entries);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
sigar_arp_list_create(arplist);
|
||||||
|
|
||||||
|
for (i=0; i<count; i++) {
|
||||||
|
mib_ipNetToMediaEnt *ent = &entries[i];
|
||||||
|
|
||||||
|
SIGAR_ARP_LIST_GROW(arplist);
|
||||||
|
|
||||||
|
arp = &arplist->data[arplist->number++];
|
||||||
|
|
||||||
|
sigar_net_address_set(arp->address,
|
||||||
|
ent->NetAddr);
|
||||||
|
|
||||||
|
sigar_net_address_mac_set(arp->hwaddr,
|
||||||
|
ent->PhysAddr.o_bytes,
|
||||||
|
ent->PhysAddr.o_length);
|
||||||
|
|
||||||
|
sigar_if_indextoname(sigar, arp->ifname, ent->IfIndex);
|
||||||
|
|
||||||
|
SIGAR_SSTRCPY(arp->type, "ether"); /*XXX*/
|
||||||
|
arp->flags = 0; /*XXX*/
|
||||||
|
}
|
||||||
|
|
||||||
|
free(entries);
|
||||||
|
|
||||||
|
return SIGAR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sigar_proc_port_get(sigar_t *sigar, int protocol,
|
int sigar_proc_port_get(sigar_t *sigar, int protocol,
|
||||||
|
Loading…
Reference in New Issue
Block a user