diff options
| -rw-r--r-- | lib/vrf.c | 12 | ||||
| -rw-r--r-- | lib/vrf.h | 2 |
2 files changed, 8 insertions, 6 deletions
@@ -72,16 +72,18 @@ vrf_list_lookup_by_name (const char *name) /* Create new vrf structure. */ struct vrf * -vrf_create (const char *name, size_t namelen) +vrf_create (const char *name) { struct vrf *vrfp; vrfp = XCALLOC (MTYPE_VRF, sizeof (struct vrf)); assert (name); - assert (namelen <= VRF_NAMSIZ); /* Need space for '\0' at end. */ - strncpy (vrfp->name, name, namelen); - vrfp->name[namelen] = '\0'; + + zlog_debug ("Vrf_create: %s", name); + strncpy (vrfp->name, name, VRF_NAMSIZ); + vrfp->name[VRF_NAMSIZ] = '\0'; + if (vrf_list_lookup_by_name (vrfp->name) == NULL) listnode_add_sort (vrf_list, vrfp); else @@ -102,7 +104,7 @@ vrf_get_by_name (const char *name) struct vrf *vrfp; return ((vrfp = vrf_list_lookup_by_name (name)) != NULL) ? vrfp : - vrf_create (name, strlen(name)); + vrf_create (name); } /* Build the table key */ @@ -111,7 +111,7 @@ extern struct vrf *vrf_lookup_by_name (const char *); extern struct vrf *vrf_list_lookup_by_name (const char *); extern struct vrf *vrf_get_by_name (const char *); extern struct vrf *vrf_get (vrf_id_t, const char *); -extern struct vrf *vrf_create (const char *, size_t); +extern struct vrf *vrf_create (const char *); extern void vrf_delete (struct vrf *); extern int vrf_enable (struct vrf *); extern vrf_id_t vrf_name_to_id (const char *); |
