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