From 8f2d395e1089dea4966c483fbeae7e336917c095 Mon Sep 17 00:00:00 2001 From: Rafael Campos Date: Wed, 14 Jun 2023 09:57:49 +0200 Subject: [PATCH] set: Parse bytes length on sets Parse the bytes length for key and data types when reading the sets. Signed-off-by: Rafael Campos --- set.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/set.go b/set.go index 173e528..3588b00 100644 --- a/set.go +++ b/set.go @@ -719,6 +719,8 @@ func setsFromMsg(msg netlink.Message) (*Set, error) { return nil, fmt.Errorf("could not determine data type: %w", err) } set.KeyType = dt + case unix.NFTA_SET_KEY_LEN: + set.KeyType.Bytes = binary.BigEndian.Uint32(ad.Bytes()) case unix.NFTA_SET_DATA_TYPE: nftMagic := ad.Uint32() // Special case for the data type verdict, in the message it is stored as 0xffffff00 but it is defined as 1 @@ -731,6 +733,8 @@ func setsFromMsg(msg netlink.Message) (*Set, error) { return nil, fmt.Errorf("could not determine data type: %w", err) } set.DataType = dt + case unix.NFTA_SET_DATA_LEN: + set.DataType.Bytes = binary.BigEndian.Uint32(ad.Bytes()) } } return &set, nil