]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Retry connecting to label manager if failed 16749/head
authorDonatas Abraitis <donatas@opensourcerouting.org>
Thu, 5 Sep 2024 09:35:51 +0000 (12:35 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Thu, 5 Sep 2024 09:35:51 +0000 (12:35 +0300)
Fixes: https://github.com/FRRouting/frr/issues/16747
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_zebra.c

index 6e2efabf8f40baecb49b765f3cff8fa81ff12c63..718dc2de06bb2909e8b407ebc8fd53622f74eec9 100644 (file)
@@ -3583,14 +3583,17 @@ void bgp_if_init(void)
        hook_register_prio(if_del, 0, bgp_if_delete_hook);
 }
 
-static void bgp_start_label_manager(struct event *start)
+static bool bgp_zebra_label_manager_ready(void)
 {
-       bgp_zebra_label_manager_connect();
+       return (zclient_sync->sock > 0);
 }
 
-static bool bgp_zebra_label_manager_ready(void)
+static void bgp_start_label_manager(struct event *start)
 {
-       return (zclient_sync->sock > 0);
+       if (!bgp_zebra_label_manager_ready() &&
+           !bgp_zebra_label_manager_connect())
+               event_add_timer(bm->master, bgp_start_label_manager, NULL, 1,
+                               &bm->t_bgp_start_label_manager);
 }
 
 static bool bgp_zebra_label_manager_connect(void)