diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2019-12-16 13:42:21 +0100 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2019-12-16 17:06:55 +0100 |
commit | 9d65f388c42eaf387a0ae91587c28a29c8582f46 (patch) | |
tree | fe03b7e88f5017e00940a73563cdd34ed82b188c | |
parent | bf5726c5afde540bb3fede21745d127b24ce427b (diff) |
expr: add expr_ops_by_type()
Fetch expression operation from the expression type.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
-rw-r--r-- | include/expression.h | 1 | ||||
-rw-r--r-- | src/expression.c | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/expression.h b/include/expression.h index 717b6755..d502fc2a 100644 --- a/include/expression.h +++ b/include/expression.h @@ -169,6 +169,7 @@ struct expr_ops { }; const struct expr_ops *expr_ops(const struct expr *e); +const struct expr_ops *expr_ops_by_type(enum expr_types etype); /** * enum expr_flags diff --git a/src/expression.c b/src/expression.c index 6fa2f1dd..a7bbde7e 100644 --- a/src/expression.c +++ b/src/expression.c @@ -1222,3 +1222,15 @@ const struct expr_ops *expr_ops(const struct expr *e) BUG("Unknown expression type %d\n", e->etype); } + +const struct expr_ops *expr_ops_by_type(enum expr_types etype) +{ + switch (etype) { + case EXPR_PAYLOAD: + return &payload_expr_ops; + default: + break; + } + + BUG("Unknown expression type %d\n", etype); +} |