summaryrefslogtreecommitdiffstats
path: root/ospfd/ospfd.c
diff options
context:
space:
mode:
authorOlivier Dugeon <olivier.dugeon@orange.com>2021-06-09 09:06:42 +0200
committerGitHub <noreply@github.com>2021-06-09 09:06:42 +0200
commit3898a4522f0d4e54f23ff76a05ad877743c10587 (patch)
treeee3f1226240c86a7875b623f5b0457cb18c33c17 /ospfd/ospfd.c
parentMerge pull request #8593 from idryzhov/cmd-ambiguous (diff)
parentospfd: fix crash when displaying neighbor data in JSON (diff)
downloadfrr-3898a4522f0d4e54f23ff76a05ad877743c10587.tar.xz
frr-3898a4522f0d4e54f23ff76a05ad877743c10587.zip
Merge pull request #8798 from opensourcerouting/ospfd-fixes
ospfd: assorted fixes
Diffstat (limited to 'ospfd/ospfd.c')
-rw-r--r--ospfd/ospfd.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 2f088aa81..e95ee55e6 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -386,7 +386,7 @@ struct ospf *ospf_new_alloc(unsigned short instance, const char *name)
new->proactive_arp = OSPF_PROACTIVE_ARP_DEFAULT;
- ospf_gr_helper_init(new);
+ ospf_gr_helper_instance_init(new);
ospf_asbr_external_aggregator_init(new);
@@ -651,6 +651,9 @@ void ospf_terminate(void)
for (ALL_LIST_ELEMENTS(om->ospf, node, nnode, ospf))
ospf_finish(ospf);
+ /* Cleanup GR */
+ ospf_gr_helper_stop();
+
/* Cleanup route maps */
route_map_finish();
@@ -815,8 +818,8 @@ static void ospf_finish_final(struct ospf *ospf)
if ((lsa = rn->info) != NULL) {
ospf_lsa_unlock(&lsa);
rn->info = NULL;
+ route_unlock_node(rn);
}
- route_unlock_node(rn);
}
route_table_finish(ospf->maxage_lsa);
@@ -890,7 +893,7 @@ static void ospf_finish_final(struct ospf *ospf)
list_delete(&ospf->oi_write_q);
/* Reset GR helper data structers */
- ospf_gr_helper_stop(ospf);
+ ospf_gr_helper_instance_stop(ospf);
close(ospf->fd);
stream_free(ospf->ibuf);