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);
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);