From a7490c7b24f39a88798fed66a6f15fd8e0e7f9ae Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 8 Nov 2012 17:31:04 +0100 Subject: 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 --- include/libnftables/table.h | 3 +++ src/libnftables.map | 2 ++ src/table.c | 13 +++++++++++++ 3 files changed, 18 insertions(+) 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) -- cgit v1.2.3