diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-06-19 17:53:25 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-06-19 17:54:31 +0200 |
commit | 7169863df1780f53ea71659eed2c6d5bb2daa015 (patch) | |
tree | 0310d77c9fd2d3d35a64fd059c7400ba0589e4c4 /src | |
parent | 90b79016981776984b3aa6e77fa1b4df22eef3c5 (diff) |
expr: add nft_rule_expr_snprintf
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/expr.c | 13 | ||||
-rw-r--r-- | src/libnftables.map | 1 | ||||
-rw-r--r-- | src/rule.c | 4 |
3 files changed, 16 insertions, 2 deletions
@@ -193,3 +193,16 @@ nft_rule_expr_build_payload(struct nlmsghdr *nlh, struct nft_rule_expr *expr) mnl_attr_nest_end(nlh, nest1); } EXPORT_SYMBOL(nft_rule_expr_build_payload); + +int nft_rule_expr_snprintf(char *buf, size_t size, struct nft_rule_expr *expr, + uint32_t type, uint32_t flags) +{ + int ret; + unsigned int offset = 0, len = size; + + ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + return offset; +} +EXPORT_SYMBOL(nft_rule_expr_snprintf); diff --git a/src/libnftables.map b/src/libnftables.map index 7be6588..9546bca 100644 --- a/src/libnftables.map +++ b/src/libnftables.map @@ -89,6 +89,7 @@ global: nft_rule_expr_get_u64; nft_rule_expr_get_str; nft_rule_expr_build_payload; + nft_rule_expr_snprintf; nft_rule_expr_free; nft_rule_list_alloc; @@ -697,7 +697,7 @@ static int nft_rule_snprintf_xml(char *buf, size_t size, struct nft_rule *r, "<expr type=\"%s\">", expr->ops->name); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); + ret = nft_rule_expr_snprintf(buf+offset, size, expr, type, flags); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); ret = snprintf(buf+offset, len, "</expr>"); @@ -726,7 +726,7 @@ static int nft_rule_snprintf_default(char *buf, size_t size, struct nft_rule *r, ret = snprintf(buf+offset, len, "%s ", expr->ops->name); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); - ret = expr->ops->snprintf(buf+offset, len, type, flags, expr); + ret = nft_rule_expr_snprintf(buf+offset, size, expr, type, flags); SNPRINTF_BUFFER_SIZE(ret, size, len, offset); } |