diff --git a/monitor.go b/monitor.go index b622315..869a82f 100644 --- a/monitor.go +++ b/monitor.go @@ -17,16 +17,17 @@ package nftables import ( "sync" + "github.com/mdlayher/netlink" "golang.org/x/sys/unix" ) -type MonitorEvent uint8 +type MonitorAction uint8 const ( - MonitorEventNew MonitorEvent = 1 << iota - MonitorEventDel - MonitorEventMask MonitorEvent = (1 << iota) - 1 - MonitorEventAny MonitorEvent = MonitorEventMask + MonitorActionNew MonitorAction = 1 << iota + MonitorActionDel + MonitorActionMask MonitorAction = (1 << iota) - 1 + MonitorActionAny MonitorAction = MonitorActionMask ) type MonitorObject uint32 @@ -45,14 +46,14 @@ const ( ) var ( - monitorFlags map[MonitorEvent]map[MonitorObject]uint32 + monitorFlags map[MonitorAction]map[MonitorObject]uint32 monitorFlagsInitOnce sync.Once ) func lazyInitOnce() { monitorFlagsInitOnce.Do(func() { - monitorFlags = map[MonitorEvent]map[MonitorObject]uint32{ - MonitorEventAny: { + monitorFlags = map[MonitorAction]map[MonitorObject]uint32{ + MonitorActionAny: { MonitorObjectAny: 0xffffffff, MonitorObjectTables: 1<>8, netlink.HeaderType(unix.NFNL_SUBSYS_NFTABLES); got != want { + continue + } + msgType := msg.Header.Type & 0x00ff + if monitor.monitorFlags&1<