diff options
-rw-r--r-- | src/chain.c | 1 | ||||
-rw-r--r-- | src/set.c | 6 | ||||
-rw-r--r-- | src/table.c | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/chain.c b/src/chain.c index b1b7bbb..6673b82 100644 --- a/src/chain.c +++ b/src/chain.c @@ -492,6 +492,7 @@ int nft_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_chain *c) } c->family = nfg->nfgen_family; + c->flags |= (1 << NFT_CHAIN_ATTR_FAMILY); return ret; } @@ -169,6 +169,10 @@ void *nft_set_attr_get(struct nft_set *s, uint16_t attr) if (s->flags & (1 << NFT_SET_ATTR_DATA_LEN)) return &s->data_len; break; + case NFT_SET_ATTR_FAMILY: + if (s->flags & (1 << NFT_SET_ATTR_FAMILY)) + return &s->family; + break; default: break; } @@ -297,6 +301,8 @@ int nft_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_set *s) s->data_len = ntohl(mnl_attr_get_u32(tb[NFTA_SET_DATA_LEN])); s->flags |= (1 << NFT_SET_ATTR_DATA_LEN); } + s->family = nfg->nfgen_family; + s->flags |= (1 << NFT_SET_ATTR_FAMILY); return ret; } diff --git a/src/table.c b/src/table.c index c33f01c..4533e23 100644 --- a/src/table.c +++ b/src/table.c @@ -218,6 +218,7 @@ int nft_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nft_table *t) } t->family = nfg->nfgen_family; + t->flags |= (1 << NFT_TABLE_ATTR_FAMILY); return 0; } |