diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-11-08 17:31:04 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2012-11-11 23:25:47 +0100 |
commit | a7490c7b24f39a88798fed66a6f15fd8e0e7f9ae (patch) | |
tree | fb0de4e9cbdca1c111b041d687d06020a2313b82 | |
parent | d83fb7b10de7d88194a7a40652db7d8ad38eefcf (diff) |
table: add nft_table_attr_set_u32 and nft_table_attr_get_u32
Useful to obtain recently added table flags.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | include/libnftables/table.h | 3 | ||||
-rw-r--r-- | src/libnftables.map | 2 | ||||
-rw-r--r-- | src/table.c | 13 |
3 files changed, 18 insertions, 0 deletions
diff --git a/include/libnftables/table.h b/include/libnftables/table.h index fd187b4..1977d91 100644 --- a/include/libnftables/table.h +++ b/include/libnftables/table.h @@ -21,6 +21,9 @@ enum { void nft_table_attr_set(struct nft_table *t, uint16_t attr, void *data); const void *nft_table_attr_get(struct nft_table *t, uint16_t attr); +void nft_table_attr_set_u32(struct nft_table *t, uint16_t attr, uint32_t data); +uint32_t nft_table_attr_get_u32(struct nft_table *t, uint16_t attr); + void nft_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nft_table *t); enum { diff --git a/src/libnftables.map b/src/libnftables.map index 58f35b4..0037969 100644 --- a/src/libnftables.map +++ b/src/libnftables.map @@ -4,6 +4,8 @@ global: nft_table_free; nft_table_attr_set; nft_table_attr_get; + nft_table_attr_set_u32; + nft_table_attr_get_u32; nft_table_snprintf; nft_table_nlmsg_build_hdr; nft_table_nlmsg_build_payload; diff --git a/src/table.c b/src/table.c index 25c46a7..48e9a6a 100644 --- a/src/table.c +++ b/src/table.c @@ -65,6 +65,12 @@ void nft_table_attr_set(struct nft_table *t, uint16_t attr, void *data) } EXPORT_SYMBOL(nft_table_attr_set); +void nft_table_attr_set_u32(struct nft_table *t, uint16_t attr, uint32_t val) +{ + nft_table_attr_set(t, attr, &val); +} +EXPORT_SYMBOL(nft_table_attr_set_u32); + const void *nft_table_attr_get(struct nft_table *t, uint16_t attr) { const void *ret = NULL; @@ -83,6 +89,13 @@ const void *nft_table_attr_get(struct nft_table *t, uint16_t attr) } EXPORT_SYMBOL(nft_table_attr_get); +uint32_t nft_table_attr_get_u32(struct nft_table *t, uint16_t attr) +{ + const void *ret = nft_table_attr_get(t, attr); + return ret == NULL ? 0 : *((uint32_t *)ret); +} +EXPORT_SYMBOL(nft_table_attr_get_u32); + struct nlmsghdr * nft_table_nlmsg_build_hdr(char *buf, uint16_t cmd, uint16_t family, uint16_t type, uint32_t seq) |