summaryrefslogtreecommitdiff
path: root/eigrpd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2025-03-24 09:37:25 -0400
committerDonald Sharp <sharpd@nvidia.com>2025-03-24 11:36:13 -0400
commitae74af996f5da3208ba4fb1daf05b75c8e1d58e2 (patch)
treebd02cae51b5cad4c573d2ef38fc25b7e88276017 /eigrpd
parentefb2aeae7b0d565f919bcd77345b78a9bd91e297 (diff)
zebra: On shutdown call appropriate finish functions
The vrf_terminate and route_map_finish functions are not being called and as such memory was being dropped on shutdown. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'eigrpd')
-rw-r--r--eigrpd/eigrp_interface.c2
-rw-r--r--eigrpd/eigrp_main.c1
-rw-r--r--eigrpd/eigrpd.c3
3 files changed, 3 insertions, 3 deletions
diff --git a/eigrpd/eigrp_interface.c b/eigrpd/eigrp_interface.c
index 73caa72b6d..8bf0e130b1 100644
--- a/eigrpd/eigrp_interface.c
+++ b/eigrpd/eigrp_interface.c
@@ -440,8 +440,6 @@ void eigrp_if_free(struct eigrp_interface *ei, int source)
pe);
eigrp_if_down(ei);
-
- eigrp_interface_hash_del(&ei->eigrp->eifs, ei);
}
/* Simulate down/up on the interface. This is needed, for example, when
diff --git a/eigrpd/eigrp_main.c b/eigrpd/eigrp_main.c
index 319ac92533..089e18439f 100644
--- a/eigrpd/eigrp_main.c
+++ b/eigrpd/eigrp_main.c
@@ -98,6 +98,7 @@ static void sigint(void)
keychain_terminate();
+ route_map_finish();
eigrp_terminate();
exit(0);
diff --git a/eigrpd/eigrpd.c b/eigrpd/eigrpd.c
index 981965f101..543a54da13 100644
--- a/eigrpd/eigrpd.c
+++ b/eigrpd/eigrpd.c
@@ -241,6 +241,7 @@ void eigrp_terminate(void)
eigrp_zebra_stop();
+ vrf_terminate();
frr_fini();
}
@@ -263,7 +264,7 @@ void eigrp_finish_final(struct eigrp *eigrp)
nbr = eigrp_nbr_hash_first(&ei->nbr_hash_head);
eigrp_nbr_delete(nbr);
}
- eigrp_if_free(ei, INTERFACE_DOWN_BY_FINAL);
+ eigrp_if_delete_hook(ei->ifp);
}
EVENT_OFF(eigrp->t_write);