Merge pull request #9 from zr-hebo/develop-hebo

fix bug caused by linux kernel
This commit is contained in:
河伯 2019-12-05 20:11:34 +08:00 committed by GitHub
commit 8e4e9a8d62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 3 deletions

View File

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