From 6cdc49ffbe0a672c27f4fffe831563b12a8e2e61 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Thu, 18 Jul 2013 20:01:27 +0200 Subject: src: simplify getter logic This patch refactors the getter code to simplify it. The default cases have been removed so gcc will spot a warning if an attribute is not handled appropriately. Signed-off-by: Pablo Neira Ayuso --- src/expr/nat.c | 45 ++++++++++++--------------------------------- 1 file changed, 12 insertions(+), 33 deletions(-) (limited to 'src/expr/nat.c') diff --git a/src/expr/nat.c b/src/expr/nat.c index 78184c4..ce8d5e2 100644 --- a/src/expr/nat.c +++ b/src/expr/nat.c @@ -72,45 +72,24 @@ nft_rule_expr_nat_get(const struct nft_rule_expr *e, uint16_t type, switch(type) { case NFT_EXPR_NAT_TYPE: - if (e->flags & (1 << NFT_EXPR_NAT_TYPE)) { - *data_len = sizeof(nat->type); - return &nat->type; - } - break; + *data_len = sizeof(nat->type); + return &nat->type; case NFT_EXPR_NAT_FAMILY: - if (e->flags & (1 << NFT_EXPR_NAT_FAMILY)) { - *data_len = sizeof(nat->family); - return &nat->family; - } - break; + *data_len = sizeof(nat->family); + return &nat->family; case NFT_EXPR_NAT_REG_ADDR_MIN: - if (e->flags & (1 << NFT_EXPR_NAT_REG_ADDR_MIN)) { - *data_len = sizeof(nat->sreg_addr_min); - return &nat->sreg_addr_min; - } - break; + *data_len = sizeof(nat->sreg_addr_min); + return &nat->sreg_addr_min; case NFT_EXPR_NAT_REG_ADDR_MAX: - if (e->flags & (1 << NFT_EXPR_NAT_REG_ADDR_MAX)) { - *data_len = sizeof(nat->sreg_addr_max); - return &nat->sreg_addr_max; - } - break; + *data_len = sizeof(nat->sreg_addr_max); + return &nat->sreg_addr_max; case NFT_EXPR_NAT_REG_PROTO_MIN: - if (e->flags & (1 << NFT_EXPR_NAT_REG_PROTO_MIN)) { - *data_len = sizeof(nat->sreg_proto_min); - return &nat->sreg_proto_min; - } - break; + *data_len = sizeof(nat->sreg_proto_min); + return &nat->sreg_proto_min; case NFT_EXPR_NAT_REG_PROTO_MAX: - if (e->flags & (1 << NFT_EXPR_NAT_REG_PROTO_MAX)) { - *data_len = sizeof(nat->sreg_proto_max); - return &nat->sreg_proto_max; - } - break; - default: - break; + *data_len = sizeof(nat->sreg_proto_max); + return &nat->sreg_proto_max; } - return NULL; } -- cgit v1.2.3