summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/expression.h1
-rw-r--r--src/exthdr.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/include/expression.h b/include/expression.h
index eacbb2d5..72b6f69b 100644
--- a/include/expression.h
+++ b/include/expression.h
@@ -264,6 +264,7 @@ struct expr {
/* EXPR_EXTHDR */
const struct exthdr_desc *desc;
const struct proto_hdr_template *tmpl;
+ unsigned int offset;
} exthdr;
struct {
/* EXPR_META */
diff --git a/src/exthdr.c b/src/exthdr.c
index 9ed0b6ac..512de0ae 100644
--- a/src/exthdr.c
+++ b/src/exthdr.c
@@ -37,6 +37,7 @@ static void exthdr_expr_clone(struct expr *new, const struct expr *expr)
{
new->exthdr.desc = expr->exthdr.desc;
new->exthdr.tmpl = expr->exthdr.tmpl;
+ new->exthdr.offset = expr->exthdr.offset;
}
static const struct expr_ops exthdr_expr_ops = {
@@ -86,6 +87,7 @@ void exthdr_init_raw(struct expr *expr, uint8_t type,
assert(expr->ops->type == EXPR_EXTHDR);
expr->len = len;
+ expr->exthdr.offset = offset;
expr->exthdr.desc = exthdr_protocols[type];
assert(expr->exthdr.desc != NULL);