]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Nest: Prevent withdraws from propagation back to source protocol (for accepted mode)
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Tue, 19 Feb 2019 15:26:09 +0000 (16:26 +0100)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Tue, 19 Feb 2019 15:26:09 +0000 (16:26 +0100)
Update for one of previous patches, handles the the issue for
first-accepted mode of route propagation.

nest/rt-table.c

index a190053223e6ef5059bdff8014886343100aadab..85afe83866d072976eebc98abe5e6bb0844b6542 100644 (file)
@@ -621,7 +621,7 @@ rt_notify_basic(struct channel *c, net *net, rte *new0, rte *old0, int refeed)
 static void
 rt_notify_accepted(struct channel *c, net *net, rte *new_changed, rte *old_changed, rte *before_old, int feed)
 {
-  // struct proto *p = c->proto;
+  struct proto *p = c->proto;
 
   rte *r;
   rte *new_best = NULL;
@@ -698,7 +698,9 @@ rt_notify_accepted(struct channel *c, net *net, rte *new_changed, rte *old_chang
    */
 
   /* Hack for changed filters */
-  if (old_changed && (old_changed->lastmod <= c->last_tx_filter_change))
+  if (old_changed &&
+      (p != old_changed->sender->proto) &&
+      (old_changed->lastmod <= c->last_tx_filter_change))
     {
       old_best = old_changed;
       goto found;