diff options
Diffstat (limited to 'src/expr/target.c')
-rw-r--r-- | src/expr/target.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/expr/target.c b/src/expr/target.c index ed29f6d..0ad39d5 100644 --- a/src/expr/target.c +++ b/src/expr/target.c @@ -228,6 +228,19 @@ nft_rule_expr_target_xml_parse(struct nft_rule_expr *e, char *xml) } static +int nft_rule_exp_target_snprintf_json(char *buf, size_t len, + struct nft_expr_target *tg) +{ + int ret, size = len, offset = 0; + + ret = snprintf(buf, len, "\"name\" : \"%s\"", + tg->name); + SNPRINTF_BUFFER_SIZE(ret, size, len, offset); + + return offset; +} + +static int nft_rule_exp_target_snprintf_xml(char *buf, size_t len, struct nft_expr_target *tg) { @@ -247,11 +260,13 @@ nft_rule_expr_target_snprintf(char *buf, size_t len, uint32_t type, struct nft_expr_target *target = (struct nft_expr_target *)e->data; switch(type) { - case NFT_RULE_O_XML: - return nft_rule_exp_target_snprintf_xml(buf, len, target); case NFT_RULE_O_DEFAULT: return snprintf(buf, len, "name=%s rev=%u ", target->name, target->rev); + case NFT_RULE_O_XML: + return nft_rule_exp_target_snprintf_xml(buf, len, target); + case NFT_RULE_O_JSON: + return nft_rule_exp_target_snprintf_json(buf, len, target); default: break; } |