]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Killed bug in merging of dynamic attributes.
authorMartin Mares <mj@ucw.cz>
Tue, 30 May 2000 21:24:15 +0000 (21:24 +0000)
committerMartin Mares <mj@ucw.cz>
Tue, 30 May 2000 21:24:15 +0000 (21:24 +0000)
nest/rt-table.c

index da76538d6ba655709b9917f4670a1189c7fd3d14..64604791aa812b22ce636a1469e43f1860ec9efc 100644 (file)
@@ -173,11 +173,12 @@ do_rte_announce(struct announce_hook *a, net *net, rte *new, rte *old, ea_list *
     p->rt_notify(p, net, NULL, old, NULL);
   else if (tmpa)
     {
-      while (tmpa->next)
-       tmpa = tmpa->next;
-      tmpa->next = new->attrs->eattrs;
+      ea_list *t = tmpa;
+      while (t->next)
+       t = t->next;
+      t->next = new->attrs->eattrs;
       p->rt_notify(p, net, new, old, tmpa);
-      tmpa->next = NULL;
+      t->next = NULL;
     }
   else
     p->rt_notify(p, net, new, old, new->attrs->eattrs);
@@ -763,6 +764,7 @@ rt_show_rte(struct cli *c, byte *ia, rte *e, struct rt_show_data *d, ea_list *tm
       t = ea_append(t, a->eattrs);
       tmpa = alloca(ea_scan(t));
       ea_merge(t, tmpa);
+      ea_sort(tmpa);
     }
   if (a->proto->proto->get_route_info)
     a->proto->proto->get_route_info(e, info, tmpa);