From 87272aff3241f0844ac826687f41956aaa753884 Mon Sep 17 00:00:00 2001 From: Philippe Guibert Date: Fri, 14 Jun 2019 13:52:00 +0200 Subject: [PATCH] lib: call vrf update hook when default vrf name changes this is a call done whenever vrf name changes. This is useful on remote daemons. Signed-off-by: Philippe Guibert --- lib/vrf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/vrf.c b/lib/vrf.c index 229f19f29a..7d8e227c6f 100644 --- a/lib/vrf.c +++ b/lib/vrf.c @@ -199,9 +199,14 @@ struct vrf *vrf_get(vrf_id_t vrf_id, const char *name) /* Set name */ if (name && vrf->name[0] != '\0' && strcmp(name, vrf->name)) { + /* update the vrf name */ RB_REMOVE(vrf_name_head, &vrfs_by_name, vrf); + strlcpy(vrf->data.l.netns_name, + name, NS_NAMSIZ); strlcpy(vrf->name, name, sizeof(vrf->name)); RB_INSERT(vrf_name_head, &vrfs_by_name, vrf); + if (vrf->vrf_id == VRF_DEFAULT) + vrf_set_default_name(vrf->name, false); } else if (name && vrf->name[0] == '\0') { strlcpy(vrf->name, name, sizeof(vrf->name)); RB_INSERT(vrf_name_head, &vrfs_by_name, vrf); @@ -870,7 +875,8 @@ void vrf_set_default_name(const char *default_name, bool force) def_vrf->vrf_id); return; } - + if (strmatch(vrf_default_name, default_name)) + return; snprintf(vrf_default_name, VRF_NAMSIZ, "%s", default_name); if (def_vrf) { if (force) -- 2.39.5