From 7ec0ea7e94afdc02e9ae96514caabae55bbe996c Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 17 Jun 2013 17:45:07 +0200 Subject: src: set NFT_*_ATTR_FAMILY in nft_*_parse function This attribute was not approapriately set in most cases. Signed-off-by: Pablo Neira Ayuso --- src/chain.c | 1 + src/set.c | 6 ++++++ src/table.c | 1 + 3 files changed, 8 insertions(+) (limited to 'src') 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; } diff --git a/src/set.c b/src/set.c index 7550b39..6c59f28 100644 --- a/src/set.c +++ b/src/set.c @@ -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; } -- cgit v1.2.3