From b90667a2ae941d2b79630d0344ef489c2bf9d9aa Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Wed, 8 Jan 2014 13:02:16 +0000 Subject: proto: add support for meta templates The following two patches will add two new meta expression types that are used as dependencies in the inet table. To reuse the existing dependency generation code, add a slightly hackish way to specify meta expressions as payload dependencies. Signed-off-by: Patrick McHardy --- src/payload.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/payload.c') diff --git a/src/payload.c b/src/payload.c index 0ef3c791..04a3455e 100644 --- a/src/payload.c +++ b/src/payload.c @@ -187,7 +187,11 @@ int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr, desc->name, expr->payload.desc->name); tmpl = &desc->templates[desc->protocol_key]; - left = payload_expr_alloc(&expr->location, desc, desc->protocol_key); + if (tmpl->meta_key) + left = meta_expr_alloc(&expr->location, tmpl->meta_key); + else + left = payload_expr_alloc(&expr->location, desc, desc->protocol_key); + right = constant_expr_alloc(&expr->location, tmpl->dtype, BYTEORDER_HOST_ENDIAN, tmpl->len, &protocol); -- cgit v1.2.3