All of lore.kernel.org
 help / color / mirror / Atom feed
* [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json
@ 2014-06-21 16:29 Ana Rey
  2014-06-21 16:29 ` [libnftnl PATCH 1/4] expr: meta: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ana Rey @ 2014-06-21 16:29 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: meta: Delete the last comma character in json text."
* "expr: meta: Use nft_rule_expr_set_* in the xml parsing code"

Ana Rey (4):
  expr: meta: Use nft_rule_expr_set_* in the xml parsing code
  expr: meta: Do not print unset values in xml file
  expr: meta: Delete the last comma character in json text.
  expr: meta: Do not print unset values in json file

 src/expr/meta.c | 80 +++++++++++++++++++++++----------------------------------
 1 file changed, 32 insertions(+), 48 deletions(-)

-- 
2.0.0


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

* [libnftnl PATCH 1/4] expr: meta: Use nft_rule_expr_set_* in the xml parsing code
  2014-06-21 16:29 [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json Ana Rey
@ 2014-06-21 16:29 ` Ana Rey
  2014-06-21 16:29 ` [libnftnl PATCH 2/4] expr: meta: Do not print unset values in xml file Ana Rey
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ana Rey @ 2014-06-21 16:29 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/meta.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/src/expr/meta.c b/src/expr/meta.c
index 24057f2..c325742 100644
--- a/src/expr/meta.c
+++ b/src/expr/meta.c
@@ -225,10 +225,9 @@ static int nft_rule_expr_meta_xml_parse(struct nft_rule_expr *e, mxml_node_t *tr
 					struct nft_parse_err *err)
 {
 #ifdef XML_PARSING
-	struct nft_expr_meta *meta = nft_expr_data(e);
 	const char *key_str;
 	int key;
-	uint32_t reg;
+	uint32_t dreg, sreg;
 
 	key_str = nft_mxml_str_parse(tree, "key", MXML_DESCEND_FIRST,
 				     NFT_XML_MAND, err);
@@ -238,21 +237,15 @@ static int nft_rule_expr_meta_xml_parse(struct nft_rule_expr *e, mxml_node_t *tr
 	key = str2meta_key(key_str);
 	if (key < 0)
 		return -1;
+	nft_rule_expr_set_u32(e, NFT_EXPR_META_KEY, key);
 
-	meta->key = key;
-	e->flags |= (1 << NFT_EXPR_META_KEY);
-
-	if (nft_mxml_reg_parse(tree, "dreg", &reg, MXML_DESCEND_FIRST,
-			       NFT_XML_OPT, err) >= 0) {
-		meta->dreg = reg;
-		e->flags |= (1 << NFT_EXPR_META_DREG);
-	}
+	if (nft_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST,
+			       NFT_XML_OPT, err) >= 0)
+		nft_rule_expr_set_u32(e, NFT_EXPR_META_DREG, dreg);
 
-	if (nft_mxml_reg_parse(tree, "sreg", &reg, MXML_DESCEND_FIRST,
-			       NFT_XML_OPT, err) >= 0) {
-		meta->sreg = reg;
-		e->flags |= (1 << NFT_EXPR_META_SREG);
-	}
+	if (nft_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST,
+			       NFT_XML_OPT, err) >= 0)
+		nft_rule_expr_set_u32(e, NFT_EXPR_META_SREG, sreg);
 
 	return 0;
 #else
-- 
2.0.0


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

* [libnftnl PATCH 2/4] expr: meta: Do not print unset values in xml file
  2014-06-21 16:29 [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json Ana Rey
  2014-06-21 16:29 ` [libnftnl PATCH 1/4] expr: meta: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
@ 2014-06-21 16:29 ` Ana Rey
  2014-06-21 16:29 ` [libnftnl PATCH 3/4] expr: meta: Delete the last comma character in json text Ana Rey
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ana Rey @ 2014-06-21 16:29 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Ana Rey

It changes the parse and snprintf functions to omit unset values.

Signed-off-by: Ana Rey <anarey@gmail.com>
---
 src/expr/meta.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/src/expr/meta.c b/src/expr/meta.c
index c325742..25026a9 100644
--- a/src/expr/meta.c
+++ b/src/expr/meta.c
@@ -231,20 +231,18 @@ static int nft_rule_expr_meta_xml_parse(struct nft_rule_expr *e, mxml_node_t *tr
 
 	key_str = nft_mxml_str_parse(tree, "key", MXML_DESCEND_FIRST,
 				     NFT_XML_MAND, err);
-	if (key_str == NULL)
-		return -1;
-
-	key = str2meta_key(key_str);
-	if (key < 0)
-		return -1;
-	nft_rule_expr_set_u32(e, NFT_EXPR_META_KEY, key);
+	if (key_str != NULL) {
+		key = str2meta_key(key_str);
+		if (key >= 0)
+			nft_rule_expr_set_u32(e, NFT_EXPR_META_KEY, key);
+	}
 
 	if (nft_mxml_reg_parse(tree, "dreg", &dreg, MXML_DESCEND_FIRST,
-			       NFT_XML_OPT, err) >= 0)
+			       NFT_XML_OPT, err) == 0)
 		nft_rule_expr_set_u32(e, NFT_EXPR_META_DREG, dreg);
 
 	if (nft_mxml_reg_parse(tree, "sreg", &sreg, MXML_DESCEND_FIRST,
-			       NFT_XML_OPT, err) >= 0)
+			       NFT_XML_OPT, err) == 0)
 		nft_rule_expr_set_u32(e, NFT_EXPR_META_SREG, sreg);
 
 	return 0;
@@ -279,19 +277,18 @@ nft_rule_expr_meta_snprintf_xml(char *buf, size_t size,
 	struct nft_expr_meta *meta = nft_expr_data(e);
 
 	if (e->flags & (1 << NFT_EXPR_META_DREG)) {
-		ret = snprintf(buf+offset, len, "<dreg>%u</dreg>",
-			       meta->dreg);
+		ret = snprintf(buf, len, "<dreg>%u</dreg>", meta->dreg);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
 
 	if (e->flags & (1 << NFT_EXPR_META_KEY)) {
-		ret = snprintf(buf+offset, len, "<key>%s</key>",
-						meta_key2str(meta->key));
+		ret = snprintf(buf + offset, len, "<key>%s</key>",
+			       meta_key2str(meta->key));
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
 
 	if (e->flags & (1 << NFT_EXPR_META_SREG)) {
-		ret = snprintf(buf+offset, len, "<sreg>%u</sreg>",
+		ret = snprintf(buf + offset, len, "<sreg>%u</sreg>",
 			       meta->sreg);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
-- 
2.0.0


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

* [libnftnl PATCH 3/4] expr: meta: Delete the last comma character in json text.
  2014-06-21 16:29 [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json Ana Rey
  2014-06-21 16:29 ` [libnftnl PATCH 1/4] expr: meta: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
  2014-06-21 16:29 ` [libnftnl PATCH 2/4] expr: meta: Do not print unset values in xml file Ana Rey
@ 2014-06-21 16:29 ` Ana Rey
  2014-06-21 16:30 ` [libnftnl PATCH 4/4] expr: meta: Do not print unset values in json file Ana Rey
  2014-06-23  9:11 ` [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json Arturo Borrero Gonzalez
  4 siblings, 0 replies; 6+ messages in thread
From: Ana Rey @ 2014-06-21 16:29 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Ana Rey

Code refactoring to delete correctly the last comma character in json text.

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

diff --git a/src/expr/meta.c b/src/expr/meta.c
index 25026a9..95d538c 100644
--- a/src/expr/meta.c
+++ b/src/expr/meta.c
@@ -322,9 +322,10 @@ nft_rule_expr_meta_snprintf_json(char *buf, size_t size,
 	}
 
 	/* Remove the last separator characther */
-	buf[offset-1] = '\0';
+	if (offset > 0)
+		offset--;
 
-	return offset-1;
+	return offset;
 }
 
 static int
-- 
2.0.0


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

* [libnftnl PATCH 4/4] expr: meta: Do not print unset values in json file
  2014-06-21 16:29 [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json Ana Rey
                   ` (2 preceding siblings ...)
  2014-06-21 16:29 ` [libnftnl PATCH 3/4] expr: meta: Delete the last comma character in json text Ana Rey
@ 2014-06-21 16:30 ` Ana Rey
  2014-06-23  9:11 ` [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json Arturo Borrero Gonzalez
  4 siblings, 0 replies; 6+ messages in thread
From: Ana Rey @ 2014-06-21 16:30 UTC (permalink / raw)
  To: netfilter-devel; +Cc: Ana Rey

It changes the parse and snprintf functions to omit unset values.
Moreover, It adds some whitespaces arount '+' caracter, as the CodingStyle
recommends.

Signed-off-by: Ana Rey <anarey@gmail.com>
---
 src/expr/meta.c | 33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/src/expr/meta.c b/src/expr/meta.c
index 95d538c..248686b 100644
--- a/src/expr/meta.c
+++ b/src/expr/meta.c
@@ -188,29 +188,22 @@ static int nft_rule_expr_meta_json_parse(struct nft_rule_expr *e, json_t *root,
 	int key;
 
 	key_str = nft_jansson_parse_str(root, "key", err);
-	if (key_str == NULL)
-		return -1;
-
-	key = str2meta_key(key_str);
-	if (key < 0)
-		return -1;
-
-	nft_rule_expr_set_u32(e, NFT_EXPR_META_KEY, key);
+	if (key_str != NULL) {
+		key = str2meta_key(key_str);
+		if (key >= 0)
+			nft_rule_expr_set_u32(e, NFT_EXPR_META_KEY, key);
+	}
 
 	if (nft_jansson_node_exist(root, "dreg")) {
 		if (nft_jansson_parse_reg(root, "dreg", NFT_TYPE_U32, &reg,
-					  err) < 0)
-			return -1;
-
-		nft_rule_expr_set_u32(e, NFT_EXPR_META_DREG, reg);
+					  err) == 0)
+			nft_rule_expr_set_u32(e, NFT_EXPR_META_DREG, reg);
 	}
 
 	if (nft_jansson_node_exist(root, "sreg")) {
 		if (nft_jansson_parse_reg(root, "sreg", NFT_TYPE_U32, &reg,
-					  err) < 0)
-			return -1;
-
-		nft_rule_expr_set_u32(e, NFT_EXPR_META_SREG, reg);
+					  err) == 0)
+			nft_rule_expr_set_u32(e, NFT_EXPR_META_SREG, reg);
 	}
 
 	return 0;
@@ -304,19 +297,19 @@ nft_rule_expr_meta_snprintf_json(char *buf, size_t size,
 	struct nft_expr_meta *meta = nft_expr_data(e);
 
 	if (e->flags & (1 << NFT_EXPR_META_DREG)) {
-		ret = snprintf(buf+offset, len, "\"dreg\":%u,",
+		ret = snprintf(buf + offset, len, "\"dreg\":%u,",
 			       meta->dreg);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
 
 	if (e->flags & (1 << NFT_EXPR_META_KEY)) {
-		ret = snprintf(buf+offset, len, "\"key\":\"%s\",",
-						meta_key2str(meta->key));
+		ret = snprintf(buf + offset, len, "\"key\":\"%s\",",
+			       meta_key2str(meta->key));
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
 
 	if (e->flags & (1 << NFT_EXPR_META_SREG)) {
-		ret = snprintf(buf+offset, len, "\"sreg\":%u,",
+		ret = snprintf(buf + offset, len, "\"sreg\":%u,",
 			       meta->sreg);
 		SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
 	}
-- 
2.0.0


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

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

On 21 June 2014 18:29, 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: meta: Delete the last comma character in json text."
> * "expr: meta: Use nft_rule_expr_set_* in the xml parsing code"
>
> Ana Rey (4):
>   expr: meta: Use nft_rule_expr_set_* in the xml parsing code
>   expr: meta: Do not print unset values in xml file
>   expr: meta: Delete the last comma character in json text.
>   expr: meta: Do not print unset values in json file
>
>  src/expr/meta.c | 80 +++++++++++++++++++++++----------------------------------
>  1 file changed, 32 insertions(+), 48 deletions(-)
>

Hi Ana, series reviewed.

thanks.
-- 
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] 6+ messages in thread

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

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-21 16:29 [libnftnl PATCH 0/4] expr: meta: Do not print unset values in xml and json Ana Rey
2014-06-21 16:29 ` [libnftnl PATCH 1/4] expr: meta: Use nft_rule_expr_set_* in the xml parsing code Ana Rey
2014-06-21 16:29 ` [libnftnl PATCH 2/4] expr: meta: Do not print unset values in xml file Ana Rey
2014-06-21 16:29 ` [libnftnl PATCH 3/4] expr: meta: Delete the last comma character in json text Ana Rey
2014-06-21 16:30 ` [libnftnl PATCH 4/4] expr: meta: Do not print unset values in json file Ana Rey
2014-06-23  9:11 ` [libnftnl PATCH 0/4] expr: meta: 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.