summaryrefslogtreecommitdiffstats
path: root/filter/filter.c
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-05-15 12:49:38 +0200
committerMartin Mares <mj@ucw.cz>2000-05-15 12:49:38 +0200
commit1c20608e02109ef0839e0168d100c75f0cc65fd9 (patch)
treeca87f7fbac8f1364fb3cc0ed0fafc621fea02c17 /filter/filter.c
parent9449c91ab2eb962b17989125c712f805f82a092b (diff)
downloadbird-1c20608e02109ef0839e0168d100c75f0cc65fd9.tar
bird-1c20608e02109ef0839e0168d100c75f0cc65fd9.zip
Added f_eval_int() and EVAL configuration command.
Diffstat (limited to 'filter/filter.c')
-rw-r--r--filter/filter.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/filter/filter.c b/filter/filter.c
index 5e848d6..2510b6a 100644
--- a/filter/filter.c
+++ b/filter/filter.c
@@ -665,6 +665,23 @@ f_run(struct filter *filter, struct rte **rte, struct ea_list **tmp_attrs, struc
return res.val.i;
}
+int
+f_eval_int(struct f_inst *expr)
+{
+ struct f_val res;
+
+ f_flags = 0;
+ f_tmp_attrs = NULL;
+ f_rte = NULL;
+ f_rte_old = NULL;
+ f_rta_copy = NULL;
+ f_pool = NULL;
+ res = interpret(expr);
+ if (res.type != T_INT)
+ cf_error("Integer expression expected");
+ return res.val.i;
+}
+
void
filters_postconfig(void)
{