Add tcp process detection with ebpf

This commit is contained in:
Vladimir Stoilov
2023-06-07 16:36:44 +03:00
parent efe8cd2fda
commit 0caa3e792c
16 changed files with 127082 additions and 5 deletions

View File

@@ -0,0 +1,49 @@
//go:build linux
package ebpf
import (
pmpacket "github.com/safing/portmaster/network/packet"
)
// packet implements the packet.Packet interface.
type infoPacket struct {
pmpacket.Base
}
// LoadPacketData does nothing on Linux, as data is always fully parsed.
func (pkt *infoPacket) LoadPacketData() error {
return nil // fmt.Errorf("can't load data info only packet")
}
func (pkt *infoPacket) Accept() error {
return nil // fmt.Errorf("can't accept info only packet")
}
func (pkt *infoPacket) Block() error {
return nil // fmt.Errorf("can't block info only packet")
}
func (pkt *infoPacket) Drop() error {
return nil // fmt.Errorf("can't block info only packet")
}
func (pkt *infoPacket) PermanentAccept() error {
return pkt.Accept()
}
func (pkt *infoPacket) PermanentBlock() error {
return pkt.Block()
}
func (pkt *infoPacket) PermanentDrop() error {
return nil // fmt.Errorf("can't drop info only packet")
}
func (pkt *infoPacket) RerouteToNameserver() error {
return nil // fmt.Errorf("can't reroute info only packet")
}
func (pkt *infoPacket) RerouteToTunnel() error {
return nil // fmt.Errorf("can't reroute info only packet")
}