From f4befc129827632209779c71d804f6139ac03541 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Fri, 13 Sep 2013 14:05:51 +0200 Subject: src: xml: add parsing optional/mandatory flag Add an optional/mandatory flag to XML parsing. In some elements (ie regs), no flag is used because is always mandatory. DATA_NONE is created to indicate a non-parsed data_reg. Signed-off-by: Arturo Borrero Gonzalez Signed-off-by: Pablo Neira Ayuso --- src/expr/payload.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/expr/payload.c') diff --git a/src/expr/payload.c b/src/expr/payload.c index 38362c4..2b9f5e0 100644 --- a/src/expr/payload.c +++ b/src/expr/payload.c @@ -248,7 +248,8 @@ nft_rule_expr_payload_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree) payload->dreg = reg; e->flags |= (1 << NFT_EXPR_PAYLOAD_DREG); - base_str = nft_mxml_str_parse(tree, "base", MXML_DESCEND_FIRST); + base_str = nft_mxml_str_parse(tree, "base", MXML_DESCEND_FIRST, + NFT_XML_MAND); if (base_str == NULL) return -1; @@ -260,13 +261,14 @@ nft_rule_expr_payload_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree) e->flags |= (1 << NFT_EXPR_PAYLOAD_BASE); if (nft_mxml_num_parse(tree, "offset", MXML_DESCEND_FIRST, BASE_DEC, - &payload->offset, NFT_TYPE_U8) != 0) + &payload->offset, NFT_TYPE_U8, + NFT_XML_MAND) != 0) return -1; e->flags |= (1 << NFT_EXPR_PAYLOAD_OFFSET); if (nft_mxml_num_parse(tree, "len", MXML_DESCEND_FIRST, BASE_DEC, - &payload->len, NFT_TYPE_U8) != 0) + &payload->len, NFT_TYPE_U8, NFT_XML_MAND) != 0) return -1; e->flags |= (1 << NFT_EXPR_PAYLOAD_LEN); -- cgit v1.2.3