Killed bug in merging of dynamic attributes.

This commit is contained in:
Martin Mares 2000-05-30 21:24:15 +00:00
parent caab3bb374
commit 2f71123158

View 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); p->rt_notify(p, net, NULL, old, NULL);
else if (tmpa) else if (tmpa)
{ {
while (tmpa->next) ea_list *t = tmpa;
tmpa = tmpa->next; while (t->next)
tmpa->next = new->attrs->eattrs; t = t->next;
t->next = new->attrs->eattrs;
p->rt_notify(p, net, new, old, tmpa); p->rt_notify(p, net, new, old, tmpa);
tmpa->next = NULL; t->next = NULL;
} }
else else
p->rt_notify(p, net, new, old, new->attrs->eattrs); 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); t = ea_append(t, a->eattrs);
tmpa = alloca(ea_scan(t)); tmpa = alloca(ea_scan(t));
ea_merge(t, tmpa); ea_merge(t, tmpa);
ea_sort(tmpa);
} }
if (a->proto->proto->get_route_info) if (a->proto->proto->get_route_info)
a->proto->proto->get_route_info(e, info, tmpa); a->proto->proto->get_route_info(e, info, tmpa);