summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2021-11-05 02:04:02 +0300
committerIgor Ryzhov <iryzhov@nfware.com>2021-11-05 02:04:02 +0300
commit903c6fa24ecb284e5313d217f15901b904c7b801 (patch)
tree0602675ecd674ff6e4a2ed714cde9427315dbd37
parent0051effcb151b803b4a8caa5d2f958485574dd24 (diff)
zebra: don't register same hook multiple times
Before 42d4b30e, table_manager_enable was called only once and the hook was also registered once. After the change, the hook is registered per each VRF that is created in the system. This is wrong. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
-rw-r--r--zebra/table_manager.c1
-rw-r--r--zebra/zebra_vrf.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/zebra/table_manager.c b/zebra/table_manager.c
index 9f3b44f944..82d6a0a6a2 100644
--- a/zebra/table_manager.c
+++ b/zebra/table_manager.c
@@ -82,7 +82,6 @@ void table_manager_enable(struct zebra_vrf *zvrf)
zvrf->tbl_mgr = XCALLOC(MTYPE_TM_TABLE, sizeof(struct table_manager));
zvrf->tbl_mgr->lc_list = list_new();
zvrf->tbl_mgr->lc_list->del = delete_table_chunk;
- hook_register(zserv_client_close, release_daemon_table_chunks);
}
/**
diff --git a/zebra/zebra_vrf.c b/zebra/zebra_vrf.c
index d051ed67a0..66d6d4b4f2 100644
--- a/zebra/zebra_vrf.c
+++ b/zebra/zebra_vrf.c
@@ -705,6 +705,8 @@ void zebra_vrf_init(void)
vrf_init(zebra_vrf_new, zebra_vrf_enable, zebra_vrf_disable,
zebra_vrf_delete, zebra_vrf_update);
+ hook_register(zserv_client_close, release_daemon_table_chunks);
+
vrf_cmd_init(vrf_config_write);
if (vrf_is_backend_netns() && ns_have_netns()) {