diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-07-18 20:01:27 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-07-18 20:08:25 +0200 |
commit | 6cdc49ffbe0a672c27f4fffe831563b12a8e2e61 (patch) | |
tree | 76e1b5318bfdd9627f8ab5138293cbe569c25da4 /src/expr/exthdr.c | |
parent | 5ecac519cd78043d0a5bfead1922a683d32db9d2 (diff) |
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 <pablo@netfilter.org>
Diffstat (limited to 'src/expr/exthdr.c')
-rw-r--r-- | src/expr/exthdr.c | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c index 5fd2550..51e784e 100644 --- a/src/expr/exthdr.c +++ b/src/expr/exthdr.c @@ -70,35 +70,17 @@ nft_rule_expr_exthdr_get(const struct nft_rule_expr *e, uint16_t type, switch(type) { case NFT_EXPR_EXTHDR_DREG: - if (e->flags & (1 << NFT_EXPR_EXTHDR_DREG)) { - *data_len = sizeof(exthdr->dreg); - return &exthdr->dreg; - } else - return NULL; - break; + *data_len = sizeof(exthdr->dreg); + return &exthdr->dreg; case NFT_EXPR_EXTHDR_TYPE: - if (e->flags & (1 << NFT_EXPR_EXTHDR_TYPE)) { - *data_len = sizeof(exthdr->type); - return &exthdr->type; - } else - return NULL; - break; + *data_len = sizeof(exthdr->type); + return &exthdr->type; case NFT_EXPR_EXTHDR_OFFSET: - if (e->flags & (1 << NFT_EXPR_EXTHDR_OFFSET)) { - *data_len = sizeof(exthdr->offset); - return &exthdr->offset; - } else - return NULL; - break; + *data_len = sizeof(exthdr->offset); + return &exthdr->offset; case NFT_EXPR_EXTHDR_LEN: - if (e->flags & (1 << NFT_EXPR_EXTHDR_LEN)) { - *data_len = sizeof(exthdr->len); - return &exthdr->len; - } else - return NULL; - break; - default: - break; + *data_len = sizeof(exthdr->len); + return &exthdr->len; } return NULL; } |