]> git.puffer.fish Git - mirror/frr.git/commitdiff
ldpd: Stop and free synchronous Zebra client on destroy 13847/head
authorDonatas Abraitis <donatas@opensourcerouting.org>
Mon, 26 Jun 2023 13:34:03 +0000 (16:34 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 27 Jun 2023 08:47:50 +0000 (11:47 +0300)
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
ldpd/lde.c
ldpd/ldp_zebra.c

index 806bab6a213ba5c6976d2ccca34aaf5ba81b97da..c7e915deb3325fdf793edada5922e2faef78bdc4 100644 (file)
@@ -87,7 +87,7 @@ static struct list *label_chunk_list;
 static struct listnode *current_label_chunk;
 
 /* Synchronous zclient to request labels */
-static struct zclient *zclient_sync;
+struct zclient *zclient_sync;
 
 /* SIGINT / SIGTERM handler. */
 static void
index 2010829035a181b6747f3e4cac902024246c3450..0fd5d4613c0825388fd9894059715af34097d361 100644 (file)
@@ -39,6 +39,7 @@ static int    ldp_zebra_opaque_msg_handler(ZAPI_CALLBACK_ARGS);
 static void    ldp_sync_zebra_init(void);
 
 static struct zclient  *zclient;
+extern struct zclient *zclient_sync;
 static bool zebra_registered = false;
 
 static void
@@ -703,4 +704,10 @@ ldp_zebra_destroy(void)
        zclient_stop(zclient);
        zclient_free(zclient);
        zclient = NULL;
+
+       if (zclient_sync == NULL)
+               return;
+       zclient_stop(zclient_sync);
+       zclient_free(zclient_sync);
+       zclient_sync = NULL;
 }