We need to increment the index by one just as the CLI does.
Fixes: 586ad210368b7 ("libnftables: Implement JSON parser")
Signed-off-by: Eric Garver <[email protected]>
---
src/parser_json.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/parser_json.c b/src/parser_json.c
index 5c00c9b003b6..10ce259f0241 100644
--- a/src/parser_json.c
+++ b/src/parser_json.c
@@ -2462,7 +2462,9 @@ static struct cmd *json_parse_cmd_add_rule(struct
json_ctx *ctx, json_t *root,
return NULL;
}
- json_unpack(root, "{s:i}", "index", &h.index.id);
+ if (!json_unpack(root, "{s:I}", "index", &h.index.id)) {
+ h.index.id++;
+ }
rule = rule_alloc(int_loc, NULL);
@@ -3040,7 +3042,9 @@ static struct cmd *json_parse_cmd_replace(struct json_ctx
*ctx,
"expr", &tmp))
return NULL;
json_unpack(root, "{s:I}", "handle", &h.handle.id);
- json_unpack(root, "{s:I}", "index", &h.index.id);
+ if (!json_unpack(root, "{s:I}", "index", &h.index.id)) {
+ h.index.id++;
+ }
if (op == CMD_REPLACE && !h.handle.id) {
json_error(ctx, "Handle is required when replacing a rule.");
--
2.20.1