]> 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>
Wed, 27 Sep 2023 08:58:16 +0000 (10:58 +0200)
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 446575c2afc047dc3196f8b7fb65be17fd649f2d..220ce0f79f2f89816b8cf4bf2640ba4f1008d665 100644 (file)
@@ -176,6 +176,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 df327e9558e0618e9e7f2ba0d794a751cf02369c..16961d6013af69cd978f8438d2721d534da6373a 100644 (file)
@@ -3136,6 +3136,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;