summaryrefslogtreecommitdiffstats
path: root/ripd
diff options
context:
space:
mode:
Diffstat (limited to 'ripd')
-rw-r--r--ripd/rip_main.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/ripd/rip_main.c b/ripd/rip_main.c
index ac358ebba..3f52bebe9 100644
--- a/ripd/rip_main.c
+++ b/ripd/rip_main.c
@@ -67,12 +67,24 @@ static void sighup(void)
/* SIGINT handler. */
static void sigint(void)
{
+ struct vrf *vrf;
+
zlog_notice("Terminating on signal");
bfd_protocol_integration_set_shutdown(true);
+
+ RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) {
+ if (!vrf->info)
+ continue;
+
+ rip_clean(vrf->info);
+ }
+
rip_vrf_terminate();
if_rmap_terminate();
rip_zclient_stop();
+
+ route_map_finish();
frr_fini();
exit(0);