All of lore.kernel.org
 help / color / mirror / Atom feed
* [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json
@ 2014-06-21 15:53 Ana Rey
  2014-06-21 15:53 ` [libnftnl PATCH 1/3] expr: immediate: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Ana Rey @ 2014-06-21 15:53 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Ana Rey

This patchset does tasks about does not print unset value in xml and json file
and about refactoring code:
* "expr: immediate: Use nft_rule_expr_set_* in the xml parsing code"

Ana Rey (3):
  expr: immediate: Use nft_rule_expr_set_* in the xml parsing code
  expr: immediate: Do not print unset values in json file
  expr: immediate: Do not print unset values in xml file

 src/expr/immediate.c | 95 +++++++++++++++++++++++++---------------------------
 1 file changed, 46 insertions(+), 49 deletions(-)

-- 
2.0.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [libnftnl PATCH 1/3] expr: immediate: Use nft_rule_expr_set_* in the xml parsing code
  2014-06-21 15:53 [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Ana Rey
@ 2014-06-21 15:53 ` Ana Rey
  2014-06-21 15:53 ` [libnftnl PATCH 2/3] expr: immediate: Do not print unset values in json file Ana Rey
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Ana Rey @ 2014-06-21 15:53 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Ana Rey

Code refactoring to use nft_rule_expr_set_* in parse functions.

Signed-off-by: Ana Rey <anarey@gmail.com>
---
 src/expr/immediate.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/expr/immediate.c b/src/expr/immediate.c
index 2ea4636..eab1497 100644
--- a/src/expr/immediate.c
+++ b/src/expr/immediate.c
@@ -229,9 +229,7 @@ nft_rule_expr_immediate_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree,
 	if (nft_mxml_reg_parse(tree, "dreg", &reg, MXML_DESCEND_FIRST,
 			       NFT_XML_MAND, err) != 0)
 		return -1;
-
-	imm->dreg = reg;
-	e->flags |= (1 << NFT_EXPR_IMM_DREG);
+	nft_rule_expr_set_u32(e, NFT_EXPR_IMM_DREG, reg);
 
 	datareg_type = nft_mxml_data_reg_parse(tree, "immediatedata",
 					       &imm->data, NFT_XML_MAND, err);
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [libnftnl PATCH 2/3] expr: immediate: Do not print unset values in json file
  2014-06-21 15:53 [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Ana Rey
  2014-06-21 15:53 ` [libnftnl PATCH 1/3] expr: immediate: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
@ 2014-06-21 15:53 ` Ana Rey
  2014-06-21 15:53 ` [libnftnl PATCH 3/3] expr: immediate: Do not print unset values in xml file Ana Rey
  2014-06-23  9:02 ` [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Arturo Borrero Gonzalez
  3 siblings, 0 replies; 5+ messages in thread
From: Ana Rey @ 2014-06-21 15:53 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Ana Rey

It changes the parse functions to omit unset values.

Signed-off-by: Ana Rey <anarey@gmail.com>
---
 src/expr/immediate.c | 49 +++++++++++++++++++++++--------------------------
 1 file changed, 23 insertions(+), 26 deletions(-)

diff --git a/src/expr/immediate.c b/src/expr/immediate.c
index eab1497..b52bd23 100644
--- a/src/expr/immediate.c
+++ b/src/expr/immediate.c
@@ -186,30 +186,26 @@ nft_rule_expr_immediate_json_parse(struct nft_rule_expr *e, json_t *root,
 	int datareg_type;
 	uint32_t reg;
 
-	if (nft_jansson_parse_reg(root, "dreg", NFT_TYPE_U32, &reg, err) < 0)
-		return -1;
-
-	nft_rule_expr_set_u32(e, NFT_EXPR_IMM_DREG, reg);
+	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",
 						  &imm->data, err);
-	if (datareg_type < 0)
-		return -1;
-
-	switch (datareg_type) {
-	case DATA_VALUE:
-		e->flags |= (1 << NFT_EXPR_IMM_DATA);
-		break;
-	case DATA_VERDICT:
-		e->flags |= (1 << NFT_EXPR_IMM_VERDICT);
-		break;
-	case DATA_CHAIN:
-		e->flags |= (1 << NFT_EXPR_IMM_CHAIN);
-		break;
-	default:
-		return -1;
+	if (datareg_type >= 0) {
+		switch (datareg_type) {
+		case DATA_VALUE:
+			e->flags |= (1 << NFT_EXPR_IMM_DATA);
+			break;
+		case DATA_VERDICT:
+			e->flags |= (1 << NFT_EXPR_IMM_VERDICT);
+			break;
+		case DATA_CHAIN:
+			e->flags |= (1 << NFT_EXPR_IMM_CHAIN);
+			break;
+		default:
+			return -1;
+		}
 	}
-
 	return 0;
 #else
 	errno = EOPNOTSUPP;
@@ -261,22 +257,23 @@ nft_rule_expr_immediate_snprintf_json(char *buf, size_t len,
 	int size = len, offset = 0, ret;
 	struct nft_expr_immediate *imm = nft_expr_data(e);
 
-	ret = snprintf(buf, len, "\"dreg\":%u,", imm->dreg);
-	SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
+	if (e->flags & (1 << NFT_EXPR_IMM_DREG)) {
+		ret = snprintf(buf, len, "\"dreg\":%u,", imm->dreg);
+		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
+	}
 
 	if (e->flags & (1 << NFT_EXPR_IMM_DATA)) {
-		ret = nft_data_reg_snprintf(buf+offset, len, &imm->data,
+		ret = nft_data_reg_snprintf(buf + offset, len, &imm->data,
 					    NFT_OUTPUT_JSON, flags, DATA_VALUE);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
 	} else if (e->flags & (1 << NFT_EXPR_IMM_VERDICT)) {
-		ret = nft_data_reg_snprintf(buf+offset, len, &imm->data,
+		ret = nft_data_reg_snprintf(buf + offset, len, &imm->data,
 					  NFT_OUTPUT_JSON, flags, DATA_VERDICT);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
 	} else if (e->flags & (1 << NFT_EXPR_IMM_CHAIN)) {
-		ret = nft_data_reg_snprintf(buf+offset, len, &imm->data,
+		ret = nft_data_reg_snprintf(buf + offset, len, &imm->data,
 					    NFT_OUTPUT_JSON, flags, DATA_CHAIN);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [libnftnl PATCH 3/3] expr: immediate: Do not print unset values in xml file
  2014-06-21 15:53 [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Ana Rey
  2014-06-21 15:53 ` [libnftnl PATCH 1/3] expr: immediate: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
  2014-06-21 15:53 ` [libnftnl PATCH 2/3] expr: immediate: Do not print unset values in json file Ana Rey
@ 2014-06-21 15:53 ` Ana Rey
  2014-06-23  9:02 ` [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Arturo Borrero Gonzalez
  3 siblings, 0 replies; 5+ messages in thread
From: Ana Rey @ 2014-06-21 15:53 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Ana Rey

It changes the parse functions to omit unset values.

Signed-off-by: Ana Rey <anarey@gmail.com>
---
 src/expr/immediate.c | 44 +++++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

diff --git a/src/expr/immediate.c b/src/expr/immediate.c
index b52bd23..af3324b 100644
--- a/src/expr/immediate.c
+++ b/src/expr/immediate.c
@@ -223,24 +223,25 @@ nft_rule_expr_immediate_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree,
 	uint32_t reg;
 
 	if (nft_mxml_reg_parse(tree, "dreg", &reg, MXML_DESCEND_FIRST,
-			       NFT_XML_MAND, err) != 0)
-		return -1;
-	nft_rule_expr_set_u32(e, NFT_EXPR_IMM_DREG, reg);
+			       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",
 					       &imm->data, NFT_XML_MAND, err);
-	switch (datareg_type) {
-	case DATA_VALUE:
-		e->flags |= (1 << NFT_EXPR_IMM_DATA);
-		break;
-	case DATA_VERDICT:
-		e->flags |= (1 << NFT_EXPR_IMM_VERDICT);
-		break;
-	case DATA_CHAIN:
-		e->flags |= (1 << NFT_EXPR_IMM_CHAIN);
-		break;
-	default:
-		return -1;
+	if (datareg_type >= 0) {
+		switch (datareg_type) {
+		case DATA_VALUE:
+			e->flags |= (1 << NFT_EXPR_IMM_DATA);
+			break;
+		case DATA_VERDICT:
+			e->flags |= (1 << NFT_EXPR_IMM_VERDICT);
+			break;
+		case DATA_CHAIN:
+			e->flags |= (1 << NFT_EXPR_IMM_CHAIN);
+			break;
+		default:
+			return -1;
+		}
 	}
 
 	return 0;
@@ -288,22 +289,23 @@ nft_rule_expr_immediate_snprintf_xml(char *buf, size_t len,
 	int size = len, offset = 0, ret;
 	struct nft_expr_immediate *imm = nft_expr_data(e);
 
-	ret = snprintf(buf, len, "<dreg>%u</dreg>", imm->dreg);
-	SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
+	if (e->flags & (1 << NFT_EXPR_IMM_DREG)) {
+		ret = snprintf(buf, len, "<dreg>%u</dreg>", imm->dreg);
+		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
+	}
 
 	if (e->flags & (1 << NFT_EXPR_IMM_DATA)) {
-		ret = nft_data_reg_snprintf(buf+offset, len, &imm->data,
+		ret = nft_data_reg_snprintf(buf + offset, len, &imm->data,
 					    NFT_OUTPUT_XML, flags, DATA_VALUE);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
 	} else if (e->flags & (1 << NFT_EXPR_IMM_VERDICT)) {
-		ret = nft_data_reg_snprintf(buf+offset, len, &imm->data,
+		ret = nft_data_reg_snprintf(buf + offset, len, &imm->data,
 					  NFT_OUTPUT_XML, flags, DATA_VERDICT);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 
 	} else if (e->flags & (1 << NFT_EXPR_IMM_CHAIN)) {
-		ret = nft_data_reg_snprintf(buf+offset, len, &imm->data,
+		ret = nft_data_reg_snprintf(buf + offset, len, &imm->data,
 					    NFT_OUTPUT_XML, flags, DATA_CHAIN);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
-- 
2.0.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json
  2014-06-21 15:53 [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Ana Rey
                   ` (2 preceding siblings ...)
  2014-06-21 15:53 ` [libnftnl PATCH 3/3] expr: immediate: Do not print unset values in xml file Ana Rey
@ 2014-06-23  9:02 ` Arturo Borrero Gonzalez
  3 siblings, 0 replies; 5+ messages in thread
From: Arturo Borrero Gonzalez @ 2014-06-23  9:02 UTC (permalink / raw)
  To: Ana Rey; +Cc: Netfilter Development Mailing list

On 21 June 2014 17:53, Ana Rey <anarey@gmail.com> wrote:
> This patchset does tasks about does not print unset value in xml and json file
> and about refactoring code:
> * "expr: immediate: Use nft_rule_expr_set_* in the xml parsing code"
>
> Ana Rey (3):
>   expr: immediate: Use nft_rule_expr_set_* in the xml parsing code
>   expr: immediate: Do not print unset values in json file
>   expr: immediate: Do not print unset values in xml file
>
>  src/expr/immediate.c | 95 +++++++++++++++++++++++++---------------------------
>  1 file changed, 46 insertions(+), 49 deletions(-)

Hi Ana, I reviewed the series and seems fine to me.

regards.

-- 
Arturo Borrero González
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-06-23  9:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-21 15:53 [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Ana Rey
2014-06-21 15:53 ` [libnftnl PATCH 1/3] expr: immediate: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
2014-06-21 15:53 ` [libnftnl PATCH 2/3] expr: immediate: Do not print unset values in json file Ana Rey
2014-06-21 15:53 ` [libnftnl PATCH 3/3] expr: immediate: Do not print unset values in xml file Ana Rey
2014-06-23  9:02 ` [libnftnl PATCH 0/3] expr: immediate: Do not print unset values in xml and json Arturo Borrero Gonzalez

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.