summaryrefslogtreecommitdiffstats
path: root/src/expr
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2014-11-10 13:35:57 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2014-11-10 18:42:37 +0100
commit6e39ecbf6aa6ca5f9a1fc999ea56bf8a5d29ea9e (patch)
treeedc5b155dac4bcd58885dcd1b680776700577ff0 /src/expr
parent5a2a1e0447bc9dc3defe6dca75e6a54312bbb045 (diff)
expr: data_reg: use 'reg' instead of 'data_reg'
data_reg is unnecessarily long name and it always has to be wrapped by another data node. This will allow us to represent data not only as registers if needed. Get rid of 'cmpdata' and 'immediatedata' too and use 'data' instead to wrap 'reg' so these are consistent with the bitwise expression. No reason for such specific tag per expression. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'src/expr')
-rw-r--r--src/expr/cmp.c4
-rw-r--r--src/expr/data_reg.c27
-rw-r--r--src/expr/immediate.c4
3 files changed, 12 insertions, 23 deletions
diff --git a/src/expr/cmp.c b/src/expr/cmp.c
index b186df0..3ca4b08 100644
--- a/src/expr/cmp.c
+++ b/src/expr/cmp.c
@@ -201,7 +201,7 @@ static int nft_rule_expr_cmp_json_parse(struct nft_rule_expr *e, json_t *root,
nft_rule_expr_set_u32(e, NFT_EXPR_CMP_OP, base);
}
- if (nft_jansson_data_reg_parse(root, "cmpdata",
+ if (nft_jansson_data_reg_parse(root, "data",
&cmp->data, err) == DATA_VALUE)
e->flags |= (1 << NFT_EXPR_CMP_DATA);
@@ -235,7 +235,7 @@ static int nft_rule_expr_cmp_xml_parse(struct nft_rule_expr *e, mxml_node_t *tre
nft_rule_expr_set_u32(e, NFT_EXPR_CMP_OP, op_value);
}
- if (nft_mxml_data_reg_parse(tree, "cmpdata",
+ if (nft_mxml_data_reg_parse(tree, "data",
&cmp->data, NFT_XML_MAND,
err) == DATA_VALUE)
e->flags |= (1 << NFT_EXPR_CMP_DATA);
diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c
index 28ad164..33b3346 100644
--- a/src/expr/data_reg.c
+++ b/src/expr/data_reg.c
@@ -145,21 +145,10 @@ static int nft_data_reg_value_xml_parse(union nft_data_reg *reg,
int i;
char node_name[6];
- /*
- * <data_reg type="value">
- * <len>16</len>
- * <data0>0xc09a002a</data0>
- * <data1>0x2700cac1</data1>
- * <data2>0x00000000</data2>
- * <data3>0x08000000</data3>
- * </data_reg>
- */
-
if (nft_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC,
&reg->len, NFT_TYPE_U8, NFT_XML_MAND, err) != 0)
return DATA_NONE;
- /* Get and set <dataN> */
for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) {
sprintf(node_name, "data%d", i);
@@ -180,7 +169,7 @@ int nft_data_reg_xml_parse(union nft_data_reg *reg, mxml_node_t *tree,
const char *type;
mxml_node_t *node;
- node = mxmlFindElement(tree, tree, "data_reg", "type", NULL,
+ node = mxmlFindElement(tree, tree, "reg", "type", NULL,
MXML_DESCEND_FIRST);
if (node == NULL)
goto err;
@@ -198,7 +187,7 @@ int nft_data_reg_xml_parse(union nft_data_reg *reg, mxml_node_t *tree,
return DATA_NONE;
err:
errno = EINVAL;
- err->node_name = "data_reg";
+ err->node_name = "reg";
err->error = NFT_PARSE_EMISSINGNODE;
return DATA_NONE;
#else
@@ -216,7 +205,7 @@ nft_data_reg_value_snprintf_json(char *buf, size_t size,
uint32_t utemp;
uint8_t *tmp;
- ret = snprintf(buf, len, "\"data_reg\":{\"type\":\"value\",");
+ ret = snprintf(buf, len, "\"reg\":{\"type\":\"value\",");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
ret = snprintf(buf+offset, len, "\"len\":%u,", reg->len);
@@ -252,7 +241,7 @@ int nft_data_reg_value_snprintf_xml(char *buf, size_t size,
uint32_t be;
uint8_t *tmp;
- ret = snprintf(buf, len, "<data_reg type=\"value\">");
+ ret = snprintf(buf, len, "<reg type=\"value\">");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
ret = snprintf(buf+offset, len, "<len>%u</len>", reg->len);
@@ -274,7 +263,7 @@ int nft_data_reg_value_snprintf_xml(char *buf, size_t size,
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
}
- ret = snprintf(buf+offset, len, "</data_reg>");
+ ret = snprintf(buf+offset, len, "</reg>");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
return offset;
@@ -317,7 +306,7 @@ nft_data_reg_verdict_snprintf_xml(char *buf, size_t size,
{
int len = size, offset = 0, ret = 0;
- ret = snprintf(buf, size, "<data_reg type=\"verdict\">"
+ ret = snprintf(buf, size, "<reg type=\"verdict\">"
"<verdict>%s</verdict>", nft_verdict2str(reg->verdict));
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
@@ -327,7 +316,7 @@ nft_data_reg_verdict_snprintf_xml(char *buf, size_t size,
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
}
- ret = snprintf(buf+offset, len, "</data_reg>");
+ ret = snprintf(buf+offset, len, "</reg>");
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
return offset;
@@ -339,7 +328,7 @@ nft_data_reg_verdict_snprintf_json(char *buf, size_t size,
{
int len = size, offset = 0, ret = 0;
- ret = snprintf(buf, size, "\"data_reg\":{\"type\":\"verdict\","
+ ret = snprintf(buf, size, "\"reg\":{\"type\":\"verdict\","
"\"verdict\":\"%s\"", nft_verdict2str(reg->verdict));
SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
diff --git a/src/expr/immediate.c b/src/expr/immediate.c
index be70445..3d4e48c 100644
--- a/src/expr/immediate.c
+++ b/src/expr/immediate.c
@@ -186,7 +186,7 @@ nft_rule_expr_immediate_json_parse(struct nft_rule_expr *e, json_t *root,
if (nft_jansson_parse_reg(root, "dreg", NFT_TYPE_U32, &reg, err) == 0)
nft_rule_expr_set_u32(e, NFT_EXPR_IMM_DREG, reg);
- datareg_type = nft_jansson_data_reg_parse(root, "immediatedata",
+ datareg_type = nft_jansson_data_reg_parse(root, "data",
&imm->data, err);
if (datareg_type >= 0) {
switch (datareg_type) {
@@ -223,7 +223,7 @@ nft_rule_expr_immediate_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree,
NFT_XML_MAND, err) == 0)
nft_rule_expr_set_u32(e, NFT_EXPR_IMM_DREG, reg);
- datareg_type = nft_mxml_data_reg_parse(tree, "immediatedata",
+ datareg_type = nft_mxml_data_reg_parse(tree, "data",
&imm->data, NFT_XML_MAND, err);
if (datareg_type >= 0) {
switch (datareg_type) {