作者:doncker
项目:gopacke
// Stats returns statistics on the underlying pcap handle.
func (p *Handle) Stats() (stat *Stats, err error) {
var cstats _Ctype_struct_pcap_stat
if -1 == C.pcap_stats(p.cptr, &cstats) {
return nil, p.Error()
}
return &Stats{
PacketsReceived: int(cstats.ps_recv),
PacketsDropped: int(cstats.ps_drop),
PacketsIfDropped: int(cstats.ps_ifdrop),
}, nil
}
作者:ThomsonReutersEiko
项目:pca
func (p *Pcap) Getstats() (stat *Stat, err error) {
var cstats _Ctype_struct_pcap_stat
if -1 == C.pcap_stats(p.cptr, &cstats) {
return nil, p.Geterror()
}
stats := new(Stat)
stats.PacketsReceived = uint32(cstats.ps_recv)
stats.PacketsDropped = uint32(cstats.ps_drop)
stats.PacketsIfDropped = uint32(cstats.ps_ifdrop)
return stats, nil
}
作者:alvinle
项目:gopca
func (p *Pcap) Getstats() (stats *Stats) {
var cstats C.struct_pcap_stat
if C.pcap_stats(p.cptr, &cstats) == -1 {
return
}
stats = new(Stats)
stats.Received = uint32(cstats.ps_recv)
stats.Dropped = uint32(cstats.ps_drop)
stats.IfDropped = uint32(cstats.ps_ifdrop)
return
}
作者:pot
项目:golibpca
// Getstats returns a filled in Stat struct.
func (p *Pcap) Getstats() (*stat.Stat, error) {
var cs C.struct_pcap_stat
res := C.pcap_stats(p.cptr, &cs)
if res == C.PCAP_ERROR {
return nil, p.GetErr()
}
s := &stat.Stat{
Captured: p.pktCnt,
Received: uint32(cs.ps_recv),
Dropped: uint32(cs.ps_drop),
IfDropped: uint32(cs.ps_ifdrop),
}
return s, nil
}