From patchwork Wed Jun 4 11:38:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ana Rey X-Patchwork-Id: 355841 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id B35EC14007C for ; Wed, 4 Jun 2014 21:38:31 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752977AbaFDLi0 (ORCPT ); Wed, 4 Jun 2014 07:38:26 -0400 Received: from mail-we0-f169.google.com ([74.125.82.169]:61265 "EHLO mail-we0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752979AbaFDLiX (ORCPT ); Wed, 4 Jun 2014 07:38:23 -0400 Received: by mail-we0-f169.google.com with SMTP id u56so8476267wes.0 for ; Wed, 04 Jun 2014 04:38:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=a7GTSUvME1vfqAPN1mG1KFLWSyZ51pROy6D7dTHnAvE=; b=yuzeRGsCrjK21khzgvWKZb4it3bGhcoaoeIx4ClR1tcrBCY3RZi3ZuD3rOP6Ts3Dam /0yopZHT+iTxtSHsJ6Hw5AQABxo8RwA7n3HTxdjrlOyxw/+FKu2SWtD+y4G8QeGMcWKa v84G9J4FjP1wBQpS/kMvpF5k2rpxFfJXLJeiezss2eq3KQXR9P8dc1zAa4ye1F2qzn2H HOIv+aKborOmvYIdF3mNCOY4e/rAilsW1JF2dCu+OYydqaWMcFeOlLxBn82JLgG3Jy5+ zpTJdjhpF4oVq4OO55y8lHIEBumWgww/xgWKako1CXB+9RXG1hXcxTnErSY0VN/0oWN2 xxoQ== X-Received: by 10.180.211.146 with SMTP id nc18mr4337080wic.53.1401881902421; Wed, 04 Jun 2014 04:38:22 -0700 (PDT) Received: from localhost.localdomain (186.169.216.87.static.jazztel.es. [87.216.169.186]) by mx.google.com with ESMTPSA id be3sm3420890wjc.5.2014.06.04.04.38.20 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 04 Jun 2014 04:38:21 -0700 (PDT) From: Ana Rey To: netfilter-devel@vger.kernel.org Cc: Ana Rey Subject: [libnftnl PATCH 2/5] expr: reject: Use nft_rule_expr_set_* in the xml and default parsing code Date: Wed, 4 Jun 2014 13:38:08 +0200 Message-Id: <1401881891-4990-3-git-send-email-anarey@gmail.com> X-Mailer: git-send-email 2.0.0.rc2 In-Reply-To: <1401881891-4990-1-git-send-email-anarey@gmail.com> References: <1401881891-4990-1-git-send-email-anarey@gmail.com> Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org Code refactoring to use nft_rule_expr_set_* in parse functions. Signed-off-by: Ana Rey --- src/expr/reject.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/expr/reject.c b/src/expr/reject.c index cefaf98..4db3461 100644 --- a/src/expr/reject.c +++ b/src/expr/reject.c @@ -103,19 +103,20 @@ nft_rule_expr_reject_build(struct nlmsghdr *nlh, struct nft_rule_expr *e) static int nft_rule_expr_reject_parse(struct nft_rule_expr *e, struct nlattr *attr) { - struct nft_expr_reject *reject = nft_expr_data(e); struct nlattr *tb[NFTA_REJECT_MAX+1] = {}; + uint32_t type; + uint8_t code; if (mnl_attr_parse_nested(attr, nft_rule_expr_reject_cb, tb) < 0) return -1; if (tb[NFTA_REJECT_TYPE]) { - reject->type = ntohl(mnl_attr_get_u32(tb[NFTA_REJECT_TYPE])); - e->flags |= (1 << NFT_EXPR_REJECT_TYPE); + type = ntohl(mnl_attr_get_u32(tb[NFTA_REJECT_TYPE])); + nft_rule_expr_set_u32(e, NFT_EXPR_REJECT_TYPE, type); } if (tb[NFTA_REJECT_ICMP_CODE]) { - reject->icmp_code = mnl_attr_get_u8(tb[NFTA_REJECT_ICMP_CODE]); - e->flags |= (1 << NFT_EXPR_REJECT_CODE); + code = mnl_attr_get_u8(tb[NFTA_REJECT_ICMP_CODE]); + nft_rule_expr_set_u8(e, NFT_EXPR_REJECT_CODE, code); } return 0; @@ -151,21 +152,19 @@ nft_rule_expr_reject_xml_parse(struct nft_rule_expr *e, mxml_node_t *tree, struct nft_parse_err *err) { #ifdef XML_PARSING - struct nft_expr_reject *reject = nft_expr_data(e); + + uint32_t type; + uint8_t code; if (nft_mxml_num_parse(tree, "type", MXML_DESCEND_FIRST, BASE_DEC, - &reject->type, NFT_TYPE_U32, NFT_XML_MAND, - err) != 0) + &type, NFT_TYPE_U32, NFT_XML_MAND, err) < 0) return -1; - - e->flags |= (1 << NFT_EXPR_REJECT_TYPE); + nft_rule_expr_set_u32(e, NFT_EXPR_REJECT_TYPE, type); if (nft_mxml_num_parse(tree, "code", MXML_DESCEND_FIRST, BASE_DEC, - &reject->icmp_code, NFT_TYPE_U8, NFT_XML_MAND, - err) != 0) + &code, NFT_TYPE_U8, NFT_XML_MAND, err) < 0) return -1; - - e->flags |= (1 << NFT_EXPR_REJECT_CODE); + nft_rule_expr_set_u8(e, NFT_EXPR_REJECT_CODE, code); return 0; #else