diff options
Diffstat (limited to 'src/evaluate.c')
-rw-r--r-- | src/evaluate.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/evaluate.c b/src/evaluate.c index 3600ad00..cb4d2a56 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -2652,6 +2652,7 @@ static int cmd_evaluate_delete(struct eval_ctx *ctx, struct cmd *cmd) static int cmd_evaluate_list(struct eval_ctx *ctx, struct cmd *cmd) { struct table *table; + struct set *set; int ret; ret = cache_update(cmd->op, ctx->msgs); @@ -2677,6 +2678,16 @@ static int cmd_evaluate_list(struct eval_ctx *ctx, struct cmd *cmd) return cmd_error(ctx, "Could not process rule: Set '%s' does not exist", cmd->handle.set); return 0; + case CMD_OBJ_FLOWTABLE: + table = table_lookup(&cmd->handle); + if (table == NULL) + return cmd_error(ctx, "Could not process rule: Table '%s' does not exist", + cmd->handle.table); + set = set_lookup(table, cmd->handle.set); + if (set == NULL || !(set->flags & SET_F_EVAL)) + return cmd_error(ctx, "Could not process rule: Flow table '%s' does not exist", + cmd->handle.set); + return 0; case CMD_OBJ_CHAIN: table = table_lookup(&cmd->handle); if (table == NULL) |