From 7e1f99719e01af86006bc5c9b9a472516ec85a2c Mon Sep 17 00:00:00 2001 From: Pavel Machek Date: Wed, 1 Dec 1999 12:54:23 +0000 Subject: [PATCH] accept should behave as return, not running any commands after it. --- bird.conf | 4 +++- filter/filter.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bird.conf b/bird.conf index f024c164..3f57a3fc 100644 --- a/bird.conf +++ b/bird.conf @@ -11,6 +11,8 @@ define xyzzy = 120+10; filter testf int j; { + print "Ok, accepting"; + accept; print "Heya, filtering route to " rta.net.ip " prefixlen " rta.net.len; print "This route was from " rta.from; j = 7; @@ -33,7 +35,7 @@ protocol rip MyRIP_test { passwords { password "ahoj" from 0 to 10; password "nazdar" from 10; } - authentication md5; + authentication none; } protocol device { diff --git a/filter/filter.c b/filter/filter.c index 6ae4eaab..2ffcbb7f 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -286,7 +286,7 @@ interpret(struct f_inst *what) case F_REJECT: /* FIXME (noncritical) Should print compele route along with reason to reject route */ res.type = T_RETURN; res.val.i = what->a1.i; - break; + return res; /* We have to return now, no more processing. */ case F_NONL: case F_NOP: break; @@ -412,6 +412,7 @@ interpret(struct f_inst *what) return res; } +/* FIXME: tmp_attrs is unreferenced. That can't be right */ int f_run(struct filter *filter, struct rte **rte, struct ea_list **tmp_attrs, struct linpool *tmp_pool) {