Compare commits

..

1 Commits

Author SHA1 Message Date
Paul Greenberg 93894975c0
Merge dae73eaa9c into b76fdc8f90 2024-08-05 14:13:25 +02:00
5 changed files with 30 additions and 28 deletions

View File

@ -219,7 +219,7 @@ func (cc *Conn) getFlowtables(t *Table) ([]netlink.Message, error) {
reply, err := receiveAckAware(conn, message.Header.Flags) reply, err := receiveAckAware(conn, message.Header.Flags)
if err != nil { if err != nil {
return nil, fmt.Errorf("receiveAckAware: %v", err) return nil, fmt.Errorf("Receive: %v", err)
} }
return reply, nil return reply, nil

View File

@ -62,27 +62,29 @@ func TestMonitor(t *testing.T) {
defer wg.Done() defer wg.Done()
count := int32(0) count := int32(0)
for { for {
event, ok := <-events select {
if !ok { case event, ok := <-events:
return if !ok {
} return
if event.Error != nil { }
err = fmt.Errorf("monitor err: %s", event.Error) if event.Error != nil {
return err = fmt.Errorf("monitor err: %s", event.Error)
} return
switch event.Type { }
case nftables.MonitorEventTypeNewTable: switch event.Type {
gotTable = event.Data.(*nftables.Table) case nftables.MonitorEventTypeNewTable:
atomic.AddInt32(&count, 1) gotTable = event.Data.(*nftables.Table)
case nftables.MonitorEventTypeNewChain: atomic.AddInt32(&count, 1)
gotChain = event.Data.(*nftables.Chain) case nftables.MonitorEventTypeNewChain:
atomic.AddInt32(&count, 1) gotChain = event.Data.(*nftables.Chain)
case nftables.MonitorEventTypeNewRule: atomic.AddInt32(&count, 1)
gotRule = event.Data.(*nftables.Rule) case nftables.MonitorEventTypeNewRule:
atomic.AddInt32(&count, 1) gotRule = event.Data.(*nftables.Rule)
} atomic.AddInt32(&count, 1)
if atomic.LoadInt32(&count) == 3 { }
return if atomic.LoadInt32(&count) == 3 {
return
}
} }
} }
}() }()

2
obj.go
View File

@ -354,7 +354,7 @@ func (cc *Conn) getObjWithLegacyType(o Obj, t *Table, msgType uint16, returnLega
reply, err := receiveAckAware(conn, message.Header.Flags) reply, err := receiveAckAware(conn, message.Header.Flags)
if err != nil { if err != nil {
return nil, fmt.Errorf("receiveAckAware: %v", err) return nil, fmt.Errorf("Receive: %v", err)
} }
var objs []Obj var objs []Obj
for _, msg := range reply { for _, msg := range reply {

View File

@ -92,7 +92,7 @@ func (cc *Conn) GetRules(t *Table, c *Chain) ([]*Rule, error) {
reply, err := receiveAckAware(conn, message.Header.Flags) reply, err := receiveAckAware(conn, message.Header.Flags)
if err != nil { if err != nil {
return nil, fmt.Errorf("receiveAckAware: %v", err) return nil, fmt.Errorf("Receive: %v", err)
} }
var rules []*Rule var rules []*Rule
for _, msg := range reply { for _, msg := range reply {

8
set.go
View File

@ -832,7 +832,7 @@ func (cc *Conn) GetSets(t *Table) ([]*Set, error) {
reply, err := receiveAckAware(conn, message.Header.Flags) reply, err := receiveAckAware(conn, message.Header.Flags)
if err != nil { if err != nil {
return nil, fmt.Errorf("receiveAckAware: %v", err) return nil, fmt.Errorf("Receive: %v", err)
} }
var sets []*Set var sets []*Set
for _, msg := range reply { for _, msg := range reply {
@ -877,11 +877,11 @@ func (cc *Conn) GetSetByName(t *Table, name string) (*Set, error) {
reply, err := receiveAckAware(conn, message.Header.Flags) reply, err := receiveAckAware(conn, message.Header.Flags)
if err != nil { if err != nil {
return nil, fmt.Errorf("receiveAckAware: %w", err) return nil, fmt.Errorf("Receive: %w", err)
} }
if len(reply) != 1 { if len(reply) != 1 {
return nil, fmt.Errorf("receiveAckAware: expected to receive 1 message but got %d", len(reply)) return nil, fmt.Errorf("Receive: expected to receive 1 message but got %d", len(reply))
} }
rs, err := setsFromMsg(reply[0]) rs, err := setsFromMsg(reply[0])
if err != nil { if err != nil {
@ -922,7 +922,7 @@ func (cc *Conn) GetSetElements(s *Set) ([]SetElement, error) {
reply, err := receiveAckAware(conn, message.Header.Flags) reply, err := receiveAckAware(conn, message.Header.Flags)
if err != nil { if err != nil {
return nil, fmt.Errorf("receiveAckAware: %v", err) return nil, fmt.Errorf("Receive: %v", err)
} }
var elems []SetElement var elems []SetElement
for _, msg := range reply { for _, msg := range reply {