]> git.ipfire.org Git - thirdparty/libnftnl.git/commitdiff
src: set NFT_*_ATTR_FAMILY in nft_*_parse function
authorPablo Neira Ayuso <pablo@netfilter.org>
Mon, 17 Jun 2013 15:45:07 +0000 (17:45 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 17 Jun 2013 19:08:41 +0000 (21:08 +0200)
This attribute was not approapriately set in most cases.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/chain.c
src/set.c
src/table.c

index b1b7bbb2af7a99fb95b16547d71fe40be6409c3e..6673b82274f1e2f7342486e622c62ef5b6349502 100644 (file)
@@ -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;
 }
index 7550b39a553c200a23d585dd40c06e70835efd3f..6c59f28801ecda1a89db2b0292a463803eb0fb0e 100644 (file)
--- 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;
 }
index c33f01c178832f9020b917a14ecfde5633a7c3a9..4533e23d56bb65a38cbdb091fb6c8ea2b1bb8a5f 100644 (file)
@@ -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;
 }