hpux tcp_stat impl
This commit is contained in:
parent
baae33d8fa
commit
5cfc305137
|
@ -1037,11 +1037,54 @@ int sigar_net_connection_walk(sigar_net_connection_walker_t *walker)
|
|||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
#define tcpsoff(x) sigar_offsetof(sigar_tcp_stat_t, x)
|
||||
|
||||
static struct {
|
||||
unsigned int id;
|
||||
size_t offset;
|
||||
} tcps_lu[] = {
|
||||
#if 0
|
||||
{ ID_tcpRtoAlgorithm, tcpsoff(xxx) },
|
||||
{ ID_tcpRtoMin, tcpsoff(xxx) },
|
||||
{ ID_tcpRtoMax, tcpsoff(xxx) },
|
||||
#endif
|
||||
{ ID_tcpMaxConn, tcpsoff(max_conn) },
|
||||
{ ID_tcpActiveOpens, tcpsoff(active_opens) },
|
||||
{ ID_tcpPassiveOpens, tcpsoff(passive_opens) },
|
||||
{ ID_tcpAttemptFails, tcpsoff(attempt_fails) },
|
||||
{ ID_tcpEstabResets, tcpsoff(estab_resets) },
|
||||
{ ID_tcpCurrEstab, tcpsoff(curr_estab) },
|
||||
{ ID_tcpInSegs, tcpsoff(in_segs) },
|
||||
{ ID_tcpOutSegs, tcpsoff(out_segs) },
|
||||
{ ID_tcpRetransSegs, tcpsoff(retrans_segs) },
|
||||
#if 0
|
||||
{ ID_tcpInErrs, tcpsoff(in_errs) },
|
||||
#endif
|
||||
{ ID_tcpOutRsts, tcpsoff(out_rsts) }
|
||||
};
|
||||
|
||||
SIGAR_DECLARE(int)
|
||||
sigar_tcp_stat_get(sigar_t *sigar,
|
||||
sigar_tcp_stat_t *tcpstat)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
int i;
|
||||
|
||||
for (i=0; i<sizeof(tcps_lu)/sizeof(tcps_lu[0]); i++) {
|
||||
struct nmparms parms;
|
||||
int val;
|
||||
unsigned int len = sizeof(val);
|
||||
parms.objid = tcps_lu[i].id;
|
||||
parms.buffer = &val;
|
||||
parms.len = &len;
|
||||
|
||||
if (sigar_get_mib_info(sigar, &parms) != SIGAR_OK) {
|
||||
val = -1;
|
||||
}
|
||||
|
||||
*(sigar_uint64_t *)((char *)tcpstat + tcps_lu[i].offset) = val;
|
||||
}
|
||||
|
||||
return SIGAR_OK;
|
||||
}
|
||||
|
||||
int sigar_proc_port_get(sigar_t *sigar, int protocol,
|
||||
|
|
Loading…
Reference in New Issue