summaryrefslogtreecommitdiffstats
path: root/src/expr/payload.c
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2021-03-09 10:40:16 +0100
committerPhil Sutter <phil@nwl.cc>2021-03-15 12:23:11 +0100
commitf4ad4d3879cead150e86c279ac8e4770e4b167b1 (patch)
treeeac8c2276ecdcc598fff2707975909d01b56f900 /src/expr/payload.c
parent636fd0daf4890a785e8b165c5ce2c602e5361fcb (diff)
expr: Check output type once and for all
There is but a single supported output type left, so check it in expr.c and drop all the single option switch statements in individual expressions. Since the parameter is now unused (and to ensure code correctness), drop 'type' parameter from struct expr_ops' snprintf callback. Signed-off-by: Phil Sutter <phil@nwl.cc>
Diffstat (limited to 'src/expr/payload.c')
-rw-r--r--src/expr/payload.c32
1 files changed, 12 insertions, 20 deletions
diff --git a/src/expr/payload.c b/src/expr/payload.c
index 2192dad..9ccb78e 100644
--- a/src/expr/payload.c
+++ b/src/expr/payload.c
@@ -232,30 +232,22 @@ static inline int nftnl_str2base(const char *base)
}
static int
-nftnl_expr_payload_snprintf(char *buf, size_t len, uint32_t type,
+nftnl_expr_payload_snprintf(char *buf, size_t len,
uint32_t flags, const struct nftnl_expr *e)
{
struct nftnl_expr_payload *payload = nftnl_expr_data(e);
- switch (type) {
- case NFTNL_OUTPUT_DEFAULT:
- if (payload->sreg)
- return snprintf(buf, len, "write reg %u => %ub @ %s header + %u csum_type %u csum_off %u csum_flags 0x%x ",
- payload->sreg,
- payload->len, base2str(payload->base),
- payload->offset, payload->csum_type,
- payload->csum_offset,
- payload->csum_flags);
- else
- return snprintf(buf, len, "load %ub @ %s header + %u => reg %u ",
- payload->len, base2str(payload->base),
- payload->offset, payload->dreg);
- case NFTNL_OUTPUT_XML:
- case NFTNL_OUTPUT_JSON:
- default:
- break;
- }
- return -1;
+ if (payload->sreg)
+ return snprintf(buf, len, "write reg %u => %ub @ %s header + %u csum_type %u csum_off %u csum_flags 0x%x ",
+ payload->sreg,
+ payload->len, base2str(payload->base),
+ payload->offset, payload->csum_type,
+ payload->csum_offset,
+ payload->csum_flags);
+ else
+ return snprintf(buf, len, "load %ub @ %s header + %u => reg %u ",
+ payload->len, base2str(payload->base),
+ payload->offset, payload->dreg);
}
struct expr_ops expr_ops_payload = {