1 Star 0 Fork 0

zhangjungang/beats

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
afpacket_linux.go 1.09 KB
Copy Edit Raw Blame History
Tudor Golubenco authored 2014-11-21 18:47 +08:00 . Fixed 'any' device support with afpacket
// +build linux
package main
import (
"time"
"github.com/packetbeat/gopacket"
"github.com/packetbeat/gopacket/afpacket"
)
type AfpacketHandle struct {
TPacket *afpacket.TPacket
}
func NewAfpacketHandle(device string, snaplen int, block_size int, num_blocks int,
timeout time.Duration) (*AfpacketHandle, error) {
var h AfpacketHandle
var err error
if device == "any" {
h.TPacket, err = afpacket.NewTPacket(
afpacket.OptFrameSize(snaplen),
afpacket.OptBlockSize(block_size),
afpacket.OptNumBlocks(num_blocks),
afpacket.OptPollTimeout(timeout))
} else {
h.TPacket, err = afpacket.NewTPacket(
afpacket.OptInterface(device),
afpacket.OptFrameSize(snaplen),
afpacket.OptBlockSize(block_size),
afpacket.OptNumBlocks(num_blocks),
afpacket.OptPollTimeout(timeout))
}
return &h, err
}
func (h *AfpacketHandle) ReadPacketData() (data []byte, ci gopacket.CaptureInfo, err error) {
return h.TPacket.ReadPacketData()
}
func (h *AfpacketHandle) SetBPFFilter(expr string) (_ error) {
return h.TPacket.SetBPFFilter(expr)
}
func (h *AfpacketHandle) Close() {
h.TPacket.Close()
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zhangjungang/beats.git
git@gitee.com:zhangjungang/beats.git
zhangjungang
beats
beats
v0.4.1

Search