Hi Alvaro, a few coments below about this patch. On 9 March 2014 14:00, Alvaro Neira Ayuso <alvaroneay@xxxxxxxxx> wrote: > From: Álvaro Neira Ayuso <alvaroneay@xxxxxxxxx> > > Signed-off-by: Alvaro Neira Ayuso <alvaroneay@xxxxxxxxx> > --- > src/rule.c | 77 +++++++++++++++++++++++++++++++----------------------------- > 1 file changed, 40 insertions(+), 37 deletions(-) > I would suggest to describe this parser change. > diff --git a/src/rule.c b/src/rule.c > index f0cafd3..e7335f8 100644 > --- a/src/rule.c > +++ b/src/rule.c > @@ -540,28 +540,36 @@ int nft_jansson_parse_rule(struct nft_rule *r, json_t *tree, > if (root == NULL) > return -1; > > - if (nft_jansson_parse_family(root, &family, err) != 0) > - goto err; > + if (nft_jansson_node_exist(root, "family")) { > + if (nft_jansson_parse_family(root, &family, err) != 0) > + goto err; > > nft_rule_attr_set_u32(r, NFT_RULE_ATTR_FAMILY, family); > + } > Fix indentation. The nft_rule_attr_set_u32() is now inside the if statement. > - if (nft_jansson_parse_val(root, "handle", NFT_TYPE_U64, &uval64, > - err) < 0) > - goto err; > + if (nft_jansson_node_exist(root, "handle")) { > + if (nft_jansson_parse_val(root, "handle", NFT_TYPE_U64, &uval64, > + err) < 0) Mixed tab/spaces indentation before 'err) < 0)' > @@ -640,39 +648,34 @@ int nft_mxml_rule_parse(mxml_node_t *tree, struct nft_rule *r, > > family = nft_mxml_family_parse(tree, "family", MXML_DESCEND_FIRST, > NFT_XML_MAND, err); > - if (family < 0) > - return -1; > - > - r->family = family; > - r->flags |= (1 << NFT_RULE_ATTR_FAMILY); > + if (family >= 0) { > + r->family = family; > + r->flags |= (1 << NFT_RULE_ATTR_FAMILY); > + } > I would suggest to, while at it, switch to nft_rule_attr_set_xx() functions. IMHO, we will save some LOCs, among other benefits. > - r->table = strdup(table); > - r->flags |= (1 << NFT_RULE_ATTR_TABLE); > + r->table = strdup(table); > + r->flags |= (1 << NFT_RULE_ATTR_TABLE); > + } Just for completeness: remember that for string attributes, the strdup() is done internally, inside nft_rule_attr_set_str(). > if (nft_mxml_num_parse(tree, "handle", MXML_DESCEND_FIRST, BASE_DEC, > - &r->handle, NFT_TYPE_U64, NFT_XML_MAND, err) != 0) > - return -1; > - > - r->flags |= (1 << NFT_RULE_ATTR_HANDLE); > + &r->handle, NFT_TYPE_U64, NFT_XML_MAND, err) >= 0) The line above is 82 characters long. regards! -- Arturo Borrero González -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html