diff options
-rw-r--r-- | src/evaluate.c | 3 | ||||
-rw-r--r-- | src/netlink_linearize.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index d0279e33..c04cb91d 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -3898,6 +3898,9 @@ static int stmt_evaluate_map(struct eval_ctx *ctx, struct stmt *stmt) if (stmt->map.data->comment != NULL) return expr_error(ctx->msgs, stmt->map.data, "Data expression comments are not supported"); + if (stmt->map.data->timeout > 0) + return expr_error(ctx->msgs, stmt->map.data, + "Data expression timeouts are not supported"); list_for_each_entry(this, &stmt->map.stmt_list, list) { if (stmt_evaluate(ctx, this) < 0) diff --git a/src/netlink_linearize.c b/src/netlink_linearize.c index c8bbcb74..6de0a969 100644 --- a/src/netlink_linearize.c +++ b/src/netlink_linearize.c @@ -1520,6 +1520,10 @@ static void netlink_gen_map_stmt(struct netlink_linearize_ctx *ctx, nftnl_expr_set_u32(nle, NFTNL_EXPR_DYNSET_SET_ID, set->handle.set_id); nft_rule_add_expr(ctx, nle, &stmt->location); + if (stmt->map.key->timeout > 0) + nftnl_expr_set_u64(nle, NFTNL_EXPR_DYNSET_TIMEOUT, + stmt->map.key->timeout); + list_for_each_entry(this, &stmt->map.stmt_list, list) num_stmts++; |