summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfdd/bfd.h1
-rw-r--r--bfdd/bfdd.c2
-rw-r--r--bfdd/ptm_adapter.c5
3 files changed, 8 insertions, 0 deletions
diff --git a/bfdd/bfd.h b/bfdd/bfd.h
index 6c5a1e9216..d5a9f92cf7 100644
--- a/bfdd/bfd.h
+++ b/bfdd/bfd.h
@@ -782,6 +782,7 @@ void bfdd_cli_init(void);
*/
void bfdd_zclient_init(struct zebra_privs_t *bfdd_priv);
void bfdd_zclient_stop(void);
+void bfdd_zclient_terminate(void);
void bfdd_zclient_unregister(vrf_id_t vrf_id);
void bfdd_zclient_register(vrf_id_t vrf_id);
void bfdd_sessions_enable_vrf(struct vrf *vrf);
diff --git a/bfdd/bfdd.c b/bfdd/bfdd.c
index 95066b97ce..71055c32ed 100644
--- a/bfdd/bfdd.c
+++ b/bfdd/bfdd.c
@@ -75,6 +75,8 @@ static void sigterm_handler(void)
bfd_vrf_terminate();
+ bfdd_zclient_terminate();
+
/* Terminate and free() FRR related memory. */
frr_fini();
diff --git a/bfdd/ptm_adapter.c b/bfdd/ptm_adapter.c
index e6c2fb71f0..b5ab2ef1d0 100644
--- a/bfdd/ptm_adapter.c
+++ b/bfdd/ptm_adapter.c
@@ -859,6 +859,11 @@ void bfdd_zclient_stop(void)
pc_free_all();
}
+void bfdd_zclient_terminate(void)
+{
+ zclient_free(zclient);
+}
+
/*
* Client handling.