Add new helper function to put and to fetch tlv that comes with u32 payload. Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> --- include/libnftnl/udata.h | 3 +++ src/libnftnl.map | 2 ++ src/udata.c | 15 +++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/include/libnftnl/udata.h b/include/libnftnl/udata.h index d36cef73feb5..e6f80f98b012 100644 --- a/include/libnftnl/udata.h +++ b/include/libnftnl/udata.h @@ -24,6 +24,8 @@ struct nftnl_udata *nftnl_udata_end(const struct nftnl_udata_buf *buf); /* putters */ bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len, const void *value); +bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, + uint32_t data); bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, const char *strz); @@ -31,6 +33,7 @@ bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, uint8_t nftnl_udata_type(const struct nftnl_udata *attr); uint8_t nftnl_udata_len(const struct nftnl_udata *attr); void *nftnl_udata_get(const struct nftnl_udata *attr); +uint32_t nftnl_udata_get_u32(const struct nftnl_udata *attr); /* iterator */ struct nftnl_udata *nftnl_udata_next(const struct nftnl_udata *attr); diff --git a/src/libnftnl.map b/src/libnftnl.map index 4282367db5b8..4c082102aa29 100644 --- a/src/libnftnl.map +++ b/src/libnftnl.map @@ -261,9 +261,11 @@ global: nftnl_udata_end; nftnl_udata_put; nftnl_udata_put_strz; + nftnl_udata_put_u32; nftnl_udata_type; nftnl_udata_len; nftnl_udata_get; + nftnl_udata_get_u32; nftnl_udata_next; nftnl_udata_parse; diff --git a/src/udata.c b/src/udata.c index 60c2f34fa3f5..d679dd053d11 100644 --- a/src/udata.c +++ b/src/udata.c @@ -94,6 +94,13 @@ bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type, } EXPORT_SYMBOL(nftnl_udata_put_strz); +bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type, + uint32_t data) +{ + return nftnl_udata_put(buf, type, sizeof(data), &data); +} +EXPORT_SYMBOL(nftnl_udata_put_u32); + uint8_t nftnl_udata_type(const struct nftnl_udata *attr) { return attr->type; @@ -112,6 +119,14 @@ void *nftnl_udata_get(const struct nftnl_udata *attr) } EXPORT_SYMBOL(nftnl_udata_get); +uint32_t nftnl_udata_get_u32(const struct nftnl_udata *attr) +{ + uint32_t *data = (uint32_t *)attr->value; + + return *data; +} +EXPORT_SYMBOL(nftnl_udata_get_u32); + struct nftnl_udata *nftnl_udata_next(const struct nftnl_udata *attr) { return (struct nftnl_udata *)&attr->value[attr->len]; -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html