]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
json: expose dynamic flag
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 26 Sep 2023 14:55:50 +0000 (16:55 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 3 Nov 2023 11:24:21 +0000 (12:24 +0100)
commit 57f5aca0006ebf984ffc1f66d48cf3b74a3d1f59 upstream.

The dynamic flag is not exported via JSON, this triggers spurious
ENOTSUPP errors when restoring rulesets in JSON with dynamic flags
set on.

Fixes: 6e45b102650a2 ("nft: set: print dynamic flag when set")
Acked-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/json.c
src/parser_json.c

index 89ff8a344c2e446547d096d9f502e0477b8b3260..c030e3d913605db8a111f3a2e3bae530c8858c28 100644 (file)
@@ -165,6 +165,8 @@ static json_t *set_print_json(struct output_ctx *octx, const struct set *set)
                json_array_append_new(tmp, json_pack("s", "interval"));
        if (set->flags & NFT_SET_TIMEOUT)
                json_array_append_new(tmp, json_pack("s", "timeout"));
+       if (set->flags & NFT_SET_EVAL)
+               json_array_append_new(tmp, json_pack("s", "dynamic"));
 
        if (json_array_size(tmp) > 0) {
                json_object_set_new(root, "flags", tmp);
index 915d5e6560bf693a615fda77d4a6a74e1c02a81f..868b4b061a80da2411e3587926021f9330d6e561 100644 (file)
@@ -3022,6 +3022,7 @@ static int string_to_set_flag(const char *str)
                { NFT_SET_CONSTANT, "constant" },
                { NFT_SET_INTERVAL, "interval" },
                { NFT_SET_TIMEOUT, "timeout" },
+               { NFT_SET_EVAL, "dynamic" },
        };
        unsigned int i;