]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Merge commit '8f3942a9' into haugesund
authorMaria Matejka <mq@ucw.cz>
Wed, 9 Mar 2022 13:09:34 +0000 (14:09 +0100)
committerMaria Matejka <mq@ucw.cz>
Wed, 9 Mar 2022 13:09:34 +0000 (14:09 +0100)
Conflicts:
nest/rt-table.c

1  2 
nest/rt-table.c

diff --cc nest/rt-table.c
index 36414ed45916a09a584d0b12f35676490ed62592,280551aaf59d2f0cb942eaa9d00cee696ec3034f..5b501696070d6150c4a58928a0e14a9e94264a81
@@@ -852,9 -575,15 +863,15 @@@ rt_notify_accepted(struct channel *c, n
    if ((new_changed == old_changed) || (old_best == old_changed))
    {
      /* Feed or old_best changed -> find first accepted by filters */
 -    for (struct rte_storage *r = net->routes; r && rte_is_valid(&r->rte); r = r->next)
 +    for (struct rte_storage *r = net->routes; rte_is_valid(r); r = r->next)
+     {
+       /* Already rejected before */
+       if (!refeed && bmap_test(&c->export_reject_map, r->rte.id))
+       continue;
        if (new_best = export_filter(c, ((nb0 = r->rte), &nb0), 0))
        break;
+     }
    }
    else
    {
@@@ -1002,19 -723,19 +1011,19 @@@ rt_notify_merged(struct channel *c, ne
   * done outside of scope of rte_announce().
   */
  static void
- rte_announce(rtable *tab, uint type, net *net, struct rte_storage *new, struct rte_storage *old,
+ rte_announce(rtable *tab, net *net, struct rte_storage *new, struct rte_storage *old,
             struct rte_storage *new_best, struct rte_storage *old_best)
  {
 -  if (!new || !rte_is_valid(&new->rte))
 +  if (!rte_is_valid(new))
      new = NULL;
  
 -  if (!old || !rte_is_valid(&old->rte))
 +  if (!rte_is_valid(old))
      old = NULL;
  
 -  if (!new_best || !rte_is_valid(&new_best->rte))
 +  if (!rte_is_valid(new_best))
      new_best = NULL;
  
 -  if (!old_best || !rte_is_valid(&old_best->rte))
 +  if (!rte_is_valid(old_best))
      old_best = NULL;
  
    if (!new && !old && !new_best && !old_best)