]> git.proxmox.com Git - mirror_frr.git/commitdiff
bfdd: disable sockets polling before closing it
authorRafael Zalamena <rzalamena@opensourcerouting.org>
Fri, 11 Oct 2019 14:15:56 +0000 (11:15 -0300)
committerRafael Zalamena <rzalamena@opensourcerouting.org>
Fri, 11 Oct 2019 14:15:56 +0000 (11:15 -0300)
Otherwise the `thread_read` will keep waking us up to handle closing
sockets which are never unregistered.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
bfdd/bfd.c

index 0ff638350b7533f947ce2e41db2e4cc3849cf010..c15391c6544b35a240132b75a4e92f06d58a882e 100644 (file)
@@ -1709,6 +1709,15 @@ static int bfd_vrf_disable(struct vrf *vrf)
        }
 
        log_debug("VRF disable %s id %d", vrf->name, vrf->vrf_id);
+
+       /* Disable read/write poll triggering. */
+       THREAD_OFF(bvrf->bg_ev[0]);
+       THREAD_OFF(bvrf->bg_ev[1]);
+       THREAD_OFF(bvrf->bg_ev[2]);
+       THREAD_OFF(bvrf->bg_ev[3]);
+       THREAD_OFF(bvrf->bg_ev[4]);
+       THREAD_OFF(bvrf->bg_ev[5]);
+
        /* Close all descriptors. */
        socket_close(&bvrf->bg_echo);
        socket_close(&bvrf->bg_shop);