diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2015-05-31 11:29:53 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2015-06-08 02:24:08 +0200 |
commit | ca34698ca62d979c281ed517f040619e31c3ada3 (patch) | |
tree | f18adda828bafdf66ababa0bf5e00dbf24f72251 /nest/rt-table.c | |
parent | ae80a2de95d3d3c153ce20b90c9d8757d02cb33d (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.c | 7 |
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--; } |