solaris tcp_stat impl
This commit is contained in:
parent
ef37a1bf3a
commit
b2fecea5b3
|
@ -2352,7 +2352,35 @@ SIGAR_DECLARE(int)
|
|||
sigar_tcp_stat_get(sigar_t *sigar,
|
||||
sigar_tcp_stat_t *tcpstat)
|
||||
{
|
||||
return SIGAR_ENOTIMPL;
|
||||
char *data;
|
||||
int len;
|
||||
int rc;
|
||||
struct opthdr *op;
|
||||
int status = SIGAR_ENOENT;
|
||||
mib2_tcp_t *mib;
|
||||
|
||||
while ((rc = get_mib2(&sigar->mib2, &op, &data, &len)) == GET_MIB2_OK) {
|
||||
if ((op->level == MIB2_TCP) && (op->name == 0)) {
|
||||
status = SIGAR_OK;
|
||||
mib = (mib2_tcp_t *)data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (status == SIGAR_OK) {
|
||||
tcpstat->max_conn = mib->tcpMaxConn;
|
||||
tcpstat->active_opens = mib->tcpActiveOpens;
|
||||
tcpstat->passive_opens = mib->tcpPassiveOpens;
|
||||
tcpstat->attempt_fails = mib->tcpAttemptFails;
|
||||
tcpstat->estab_resets = mib->tcpEstabResets;
|
||||
tcpstat->curr_estab = mib->tcpCurrEstab;
|
||||
tcpstat->in_segs = mib->tcpInSegs;
|
||||
tcpstat->out_segs = mib->tcpOutSegs;
|
||||
tcpstat->retrans_segs = mib->tcpRetransSegs;
|
||||
tcpstat->out_rsts = mib->tcpOutRsts;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
int sigar_proc_port_get(sigar_t *sigar, int protocol,
|
||||
|
|
Loading…
Reference in New Issue