diff options
author | Martin Mares <mj@ucw.cz> | 2000-05-30 23:24:15 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2000-05-30 23:24:15 +0200 |
commit | 2f71123158973d770eee1dea64b46a4774bcf9a5 (patch) | |
tree | 68df5481d6a9c354b2c4029ed7ce56d4177279dd | |
parent | caab3bb374d2671982d068c0fb0aa6217691d5bd (diff) | |
download | bird-2f71123158973d770eee1dea64b46a4774bcf9a5.tar bird-2f71123158973d770eee1dea64b46a4774bcf9a5.zip |
Killed bug in merging of dynamic attributes.
-rw-r--r-- | nest/rt-table.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c index da76538..6460479 100644 --- a/nest/rt-table.c +++ b/nest/rt-table.c @@ -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); |