summaryrefslogtreecommitdiff
path: root/nest/rt-table.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2015-05-31 11:29:53 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2015-06-08 02:24:08 +0200
commitca34698ca62d979c281ed517f040619e31c3ada3 (patch)
treef18adda828bafdf66ababa0bf5e00dbf24f72251 /nest/rt-table.c
parentae80a2de95d3d3c153ce20b90c9d8757d02cb33d (diff)
Fixes bug in pipe feeding when filtered routes are kept in table
Diffstat (limited to 'nest/rt-table.c')
-rw-r--r--nest/rt-table.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c
index d5af41c7..27c6cb76 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -1816,15 +1816,20 @@ again:
{
if (p->export_state != ES_FEEDING)
return 1; /* In the meantime, the protocol fell down. */
+
do_feed_baby(p, p->accept_ra_types, h, n, e);
max_feed--;
}
if (p->accept_ra_types == RA_ANY)
- for(e = n->routes; rte_is_valid(e); e = e->next)
+ for(e = n->routes; e; e = e->next)
{
if (p->export_state != ES_FEEDING)
return 1; /* In the meantime, the protocol fell down. */
+
+ if (!rte_is_valid(e))
+ continue;
+
do_feed_baby(p, RA_ANY, h, n, e);
max_feed--;
}