From: vivek Date: Sat, 7 May 2016 05:07:58 +0000 (-0700) Subject: BGP: At exit, remove callbacks before invoking vrf_terminate() X-Git-Tag: frr-2.0-rc1~931 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=021530c1e3e4f67a313e4c34536bd513809e2054;p=matthieu%2Ffrr.git BGP: At exit, remove callbacks before invoking vrf_terminate() Signed-off-by: Vivek Venkatraman Reviewed-by: Donald Sharp Reviewed-by: Daniel Walton Ticket: CM-10831 Reviewed By: CCR-4657 Testing Done: Manual --- diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c index 1f7d0ea492..656f49d183 100644 --- a/bgpd/bgp_main.c +++ b/bgpd/bgp_main.c @@ -79,6 +79,7 @@ void sigint (void); void sigusr1 (void); static void bgp_exit (int); +static void bgp_vrf_terminate (void); static struct quagga_signal_t bgp_signals[] = { @@ -268,7 +269,7 @@ bgp_exit (int status) /* reverse community_list_init */ community_list_terminate (bgp_clist); - vrf_terminate (); + bgp_vrf_terminate (); cmd_terminate (); vty_terminate (); if (zclient) @@ -369,6 +370,17 @@ bgp_vrf_init (void) vrf_init (); } +static void +bgp_vrf_terminate (void) +{ + vrf_add_hook (VRF_NEW_HOOK, NULL); + vrf_add_hook (VRF_ENABLE_HOOK, NULL); + vrf_add_hook (VRF_DISABLE_HOOK, NULL); + vrf_add_hook (VRF_DELETE_HOOK, NULL); + + vrf_terminate (); +} + /* Main routine of bgpd. Treatment of argument and start bgp finite state machine is handled at here. */ int