diff options
| author | Tom Goff <thomas.goff@boeing.com> | 2011-12-14 14:11:29 +0400 | 
|---|---|---|
| committer | Denis Ovsienko <infrastation@yandex.ru> | 2011-12-14 14:11:29 +0400 | 
| commit | b48cebbba0dc01ad7d1fbd7cbcc39a11e1ae972d (patch) | |
| tree | a2fbe8ca90af5b9a7482de1483df40f70fb6e120 /ospf6d | |
| parent | bb915f5fa60de1a5b7e6089fcfc680281a590463 (diff) | |
ospf6d: always remove the result of a previous SPF calculation
This is needed to avoid stale routes in some cases; the regression was
introduced by commit 1d19234e79c77a7d55194b513f2a77c6a691bc2c.
* ospf6_spf.c: (ospf6_spf_calculation) Call ospf6_spf_table_finish()
  before possibly returning if no router-LSA is found for the root of
  the SPF tree.
Diffstat (limited to 'ospf6d')
| -rw-r--r-- | ospf6d/ospf6_spf.c | 4 | 
1 files changed, 2 insertions, 2 deletions
| diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c index beb6d7f7..a4a5b721 100644 --- a/ospf6d/ospf6_spf.c +++ b/ospf6d/ospf6_spf.c @@ -391,6 +391,8 @@ ospf6_spf_calculation (u_int32_t router_id,    caddr_t lsdesc;    struct ospf6_lsa *lsa; +  ospf6_spf_table_finish (result_table); +    /* Install the calculating router itself as the root of the SPF tree */    /* construct root vertex */    lsa = ospf6_lsdb_lookup (htons (OSPF6_LSTYPE_ROUTER), htonl (0), @@ -402,8 +404,6 @@ ospf6_spf_calculation (u_int32_t router_id,    candidate_list = pqueue_create ();    candidate_list->cmp = ospf6_vertex_cmp; -  ospf6_spf_table_finish (result_table); -    root = ospf6_vertex_create (lsa);    root->area = oa;    root->cost = 0; | 
