diff --git a/capture/network.go b/capture/network.go index a9b2424..d3521ec 100644 --- a/capture/network.go +++ b/capture/network.go @@ -78,6 +78,7 @@ func initEthernetHandlerFromPacpgo() (handler *pcapgo.EthernetHandle) { return } +// in online use, we found a strange bug: pcap cost 100% core CPU and memory increase along func initEthernetHandlerFromPacp() (handler *pcap.Handle) { handler, err := pcap.OpenLive(DeviceName, 65536, false, pcap.BlockForever) if err != nil { @@ -101,7 +102,7 @@ func (nc *networkCard) Listen() (receiver chan model.QueryPiece) { func (nc *networkCard) listenNormal() { go func() { aliveCounter := 0 - handler := initEthernetHandlerFromPacp() + handler := initEthernetHandlerFromPacpgo() for { var data []byte @@ -127,8 +128,8 @@ func (nc *networkCard) listenNormal() { continue } - // packet := gopacket.NewPacket(data, layers.LayerTypeEthernet, gopacket.NoCopy) - packet := gopacket.NewPacket(data, handler.LinkType(), gopacket.NoCopy) + packet := gopacket.NewPacket(data, layers.LayerTypeEthernet, gopacket.NoCopy) + // packet := gopacket.NewPacket(data, handler.LinkType(), gopacket.NoCopy) m := packet.Metadata() m.CaptureInfo = ci