66 lines
2.3 KiB
Diff
66 lines
2.3 KiB
Diff
From 215992d2a9c837410eb84bad86307d303d4cd103 Mon Sep 17 00:00:00 2001
|
|
From: Phil Sutter <psutter@redhat.com>
|
|
Date: Fri, 17 Jul 2026 11:08:42 +0200
|
|
Subject: [PATCH] parser: json: Support for synproxy objects
|
|
|
|
JIRA: https://issues.redhat.com/browse/RHEL-190549
|
|
Upstream Status: nftables commit 938a135f2200766661e42a20e02d87555f5bacfa
|
|
|
|
commit 938a135f2200766661e42a20e02d87555f5bacfa
|
|
Author: Phil Sutter <phil@nwl.cc>
|
|
Date: Sat Mar 9 00:29:36 2024 +0100
|
|
|
|
parser: json: Support for synproxy objects
|
|
|
|
Parsing code was there already, merely the entry in json_parse_cmd_add()
|
|
missing.
|
|
|
|
To support maps with synproxy target, an entry in string_to_nft_object()
|
|
is required. While being at it, add other missing entries as well.
|
|
|
|
Signed-off-by: Phil Sutter <phil@nwl.cc>
|
|
|
|
Signed-off-by: Phil Sutter <psutter@redhat.com>
|
|
---
|
|
src/parser_json.c | 17 +++++++++++------
|
|
1 file changed, 11 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/src/parser_json.c b/src/parser_json.c
|
|
index 9537c9d..b8ed848 100644
|
|
--- a/src/parser_json.c
|
|
+++ b/src/parser_json.c
|
|
@@ -3255,14 +3255,18 @@ err_free_rule:
|
|
static int string_to_nft_object(const char *str)
|
|
{
|
|
const char *obj_tbl[__NFT_OBJECT_MAX] = {
|
|
- [NFT_OBJECT_COUNTER] = "counter",
|
|
- [NFT_OBJECT_QUOTA] = "quota",
|
|
- [NFT_OBJECT_LIMIT] = "limit",
|
|
- [NFT_OBJECT_SECMARK] = "secmark",
|
|
+ [NFT_OBJECT_COUNTER] = "counter",
|
|
+ [NFT_OBJECT_QUOTA] = "quota",
|
|
+ [NFT_OBJECT_CT_HELPER] = "ct helper",
|
|
+ [NFT_OBJECT_LIMIT] = "limit",
|
|
+ [NFT_OBJECT_CT_TIMEOUT] = "ct timeout",
|
|
+ [NFT_OBJECT_SECMARK] = "secmark",
|
|
+ [NFT_OBJECT_CT_EXPECT] = "ct expectation",
|
|
+ [NFT_OBJECT_SYNPROXY] = "synproxy",
|
|
};
|
|
unsigned int i;
|
|
|
|
- for (i = 0; i < NFT_OBJECT_MAX; i++) {
|
|
+ for (i = 0; i <= NFT_OBJECT_MAX; i++) {
|
|
if (obj_tbl[i] && !strcmp(str, obj_tbl[i]))
|
|
return i;
|
|
}
|
|
@@ -3789,7 +3793,8 @@ static struct cmd *json_parse_cmd_add(struct json_ctx *ctx,
|
|
{ "ct timeout", NFT_OBJECT_CT_TIMEOUT, json_parse_cmd_add_object },
|
|
{ "ct expectation", NFT_OBJECT_CT_EXPECT, json_parse_cmd_add_object },
|
|
{ "limit", CMD_OBJ_LIMIT, json_parse_cmd_add_object },
|
|
- { "secmark", CMD_OBJ_SECMARK, json_parse_cmd_add_object }
|
|
+ { "secmark", CMD_OBJ_SECMARK, json_parse_cmd_add_object },
|
|
+ { "synproxy", CMD_OBJ_SYNPROXY, json_parse_cmd_add_object }
|
|
};
|
|
unsigned int i;
|
|
json_t *tmp;
|