diff options
-rw-r--r-- | nest/rt-table.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c index 07bb0b12..83f0e713 100644 --- a/nest/rt-table.c +++ b/nest/rt-table.c @@ -543,8 +543,18 @@ rt_notify_accepted(struct announce_hook *ah, net *net, rte *new_changed, rte *ol * * - We found new_best the same as new_changed, therefore it cannot * be old_best and we have to continue search for old_best. + * + * There is also a hack to ensure consistency in case of changed filters. + * It does not find the proper old_best, just selects a non-NULL route. */ + /* Hack for changed filters */ + if (old_changed && (old_changed->lastmod <= ah->last_out_filter_change)) + { + old_best = old_changed; + goto found; + } + /* First case */ if (old_meet) if (old_best = export_filter(ah, old_changed, &old_free, NULL, 1)) |