summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>1999-12-01 12:54:23 +0000
committerPavel Machek <pavel@ucw.cz>1999-12-01 12:54:23 +0000
commit7e1f99719e01af86006bc5c9b9a472516ec85a2c (patch)
tree9dece24661273728affca909f5a58e1295f6f629
parent639e62855495fcf461c177373d8f5eb0d5d87332 (diff)
accept should behave as return, not running any commands after it.
-rw-r--r--bird.conf4
-rw-r--r--filter/filter.c3
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)
{