diff options
Diffstat (limited to 'src/vlibmemory')
-rw-r--r-- | src/vlibmemory/memclnt.api | 10 | ||||
-rw-r--r-- | src/vlibmemory/memory_api.c | 2 | ||||
-rw-r--r-- | src/vlibmemory/memory_client.c | 9 | ||||
-rw-r--r-- | src/vlibmemory/socket_api.c | 3 | ||||
-rw-r--r-- | src/vlibmemory/socket_client.c | 4 | ||||
-rw-r--r-- | src/vlibmemory/vlib_api.c | 35 |
6 files changed, 28 insertions, 35 deletions
diff --git a/src/vlibmemory/memclnt.api b/src/vlibmemory/memclnt.api index 5a7ef4f48ef..2f1e2daa4b6 100644 --- a/src/vlibmemory/memclnt.api +++ b/src/vlibmemory/memclnt.api @@ -34,7 +34,7 @@ define memclnt_create { u32 context; /* opaque value to be returned in the reply */ i32 ctx_quota; /* requested punt context quota */ u64 input_queue; /* client's queue */ - string name [limit=64]; /* for show, find by name, whatever */ + u8 name[64]; /* for show, find by name, whatever */ u32 api_versions[8]; /* client-server pairs use as desired */ }; @@ -102,7 +102,7 @@ autoreply define rpc_call { define get_first_msg_id { u32 client_index; u32 context; - string name [limit=64]; + u8 name[64]; }; define get_first_msg_id_reply { @@ -118,7 +118,7 @@ typedef module_version { u32 major; u32 minor; u32 patch; - string name [limit=64]; + u8 name[64]; }; define api_versions { u32 client_index; @@ -141,7 +141,7 @@ manual_print define trace_plugin_msg_ids { u32 client_index; u32 context; - string plugin_name [limit=128]; + u8 plugin_name[128]; u16 first_msg_id; u16 last_msg_id; }; @@ -157,7 +157,7 @@ typedef message_table_entry */ define sockclnt_create { u32 context; /* opaque value to be returned in the reply */ - string name [limit=64]; /* for show, find by name, whatever */ + u8 name[64]; /* for show, find by name, whatever */ }; define sockclnt_create_reply { diff --git a/src/vlibmemory/memory_api.c b/src/vlibmemory/memory_api.c index 0dcf0b001af..b87aa76b2d0 100644 --- a/src/vlibmemory/memory_api.c +++ b/src/vlibmemory/memory_api.c @@ -211,7 +211,7 @@ vl_api_memclnt_create_t_handler (vl_api_memclnt_create_t * mp) q = regp->vl_input_queue = (svm_queue_t *) (uword) mp->input_queue; - regp->name = vl_api_from_api_to_vec (&mp->name); + regp->name = format (0, "%s", mp->name); vec_add1 (regp->name, 0); if (am->serialized_message_table_in_shmem == 0) diff --git a/src/vlibmemory/memory_client.c b/src/vlibmemory/memory_client.c index 3e1bdff777c..f032ae77d19 100644 --- a/src/vlibmemory/memory_client.c +++ b/src/vlibmemory/memory_client.c @@ -195,7 +195,7 @@ vl_client_connect (const char *name, int ctx_quota, int input_queue_size) mp->_vl_msg_id = ntohs (VL_API_MEMCLNT_CREATE); mp->ctx_quota = ctx_quota; mp->input_queue = (uword) vl_input_queue; - vl_api_to_api_string (strnlen_s (name, 64), name, &mp->name); + strncpy ((char *) mp->name, name, sizeof (mp->name) - 1); vl_msg_api_send_shmem (shmem_hdr->vl_input_queue, (u8 *) & mp); @@ -517,8 +517,7 @@ vl_client_get_first_plugin_msg_id (const char *plugin_name) clib_time_t clib_time; u16 rv = ~0; - size_t plugin_name_len = strnlen_s (plugin_name, 128); - if (plugin_name_len == 128) + if (strlen (plugin_name) + 1 > sizeof (mp->name)) return (rv); clib_memset (&clib_time, 0, sizeof (clib_time)); @@ -539,7 +538,7 @@ vl_client_get_first_plugin_msg_id (const char *plugin_name) clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = ntohs (VL_API_GET_FIRST_MSG_ID); mp->client_index = am->my_client_index; - vl_api_to_api_string (plugin_name_len, plugin_name, &mp->name); + strncpy ((char *) mp->name, plugin_name, sizeof (mp->name) - 1); if (vl_socket_client_write () <= 0) goto sock_err; @@ -564,7 +563,7 @@ vl_client_get_first_plugin_msg_id (const char *plugin_name) clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = ntohs (VL_API_GET_FIRST_MSG_ID); mp->client_index = am->my_client_index; - vl_api_to_api_string (plugin_name_len, plugin_name, &mp->name); + strncpy ((char *) mp->name, plugin_name, sizeof (mp->name) - 1); vl_msg_api_send_shmem (am->shmem_hdr->vl_input_queue, (u8 *) & mp); diff --git a/src/vlibmemory/socket_api.c b/src/vlibmemory/socket_api.c index f9dd53364e4..868298ccc85 100644 --- a/src/vlibmemory/socket_api.c +++ b/src/vlibmemory/socket_api.c @@ -436,8 +436,7 @@ vl_api_sockclnt_create_t_handler (vl_api_sockclnt_create_t * mp) ASSERT (regp->registration_type == REGISTRATION_TYPE_SOCKET_SERVER); - regp->name = vl_api_from_api_to_vec (&mp->name); - vec_add1 (regp->name, 0); + regp->name = format (0, "%s%c", mp->name, 0); u32 size = sizeof (*rp) + (nmsg * sizeof (vl_api_message_table_entry_t)); rp = vl_msg_api_alloc_zero (size); diff --git a/src/vlibmemory/socket_client.c b/src/vlibmemory/socket_client.c index fcd31992fa5..96330ce481a 100644 --- a/src/vlibmemory/socket_client.c +++ b/src/vlibmemory/socket_client.c @@ -395,8 +395,8 @@ vl_socket_client_connect (char *socket_path, char *client_name, mp = vl_socket_client_msg_alloc (sizeof (*mp)); mp->_vl_msg_id = htons (VL_API_SOCKCLNT_CREATE); - - vl_api_to_api_string (strnlen_s (client_name, 64), client_name, &mp->name); + strncpy ((char *) mp->name, client_name, sizeof (mp->name) - 1); + mp->name[sizeof (mp->name) - 1] = 0; mp->context = 0xfeedface; clib_time_init (&scm->clib_time); diff --git a/src/vlibmemory/vlib_api.c b/src/vlibmemory/vlib_api.c index 7d7ed3e68aa..e1a6bd18d55 100644 --- a/src/vlibmemory/vlib_api.c +++ b/src/vlibmemory/vlib_api.c @@ -56,12 +56,10 @@ static inline void * vl_api_trace_plugin_msg_ids_t_print (vl_api_trace_plugin_msg_ids_t * a, void *handle) { - u8 *plugin_name = vl_api_from_api_to_vec (&a->plugin_name); - vl_print (handle, "vl_api_trace_plugin_msg_ids: %v first %u last %u\n", - plugin_name, + vl_print (handle, "vl_api_trace_plugin_msg_ids: %s first %u last %u\n", + a->plugin_name, clib_host_to_net_u16 (a->first_msg_id), clib_host_to_net_u16 (a->last_msg_id)); - vec_free (plugin_name); return handle; } @@ -78,6 +76,7 @@ vl_api_get_first_msg_id_t_handler (vl_api_get_first_msg_id_t * mp) uword *p; api_main_t *am = &api_main; vl_api_msg_range_t *rp; + u8 name[64]; u16 first_msg_id = ~0; int rv = -7; /* VNET_API_ERROR_INVALID_VALUE */ @@ -85,11 +84,10 @@ vl_api_get_first_msg_id_t_handler (vl_api_get_first_msg_id_t * mp) if (!regp) return; - u8 *name = vl_api_from_api_to_vec (&mp->name); - if (am->msg_range_by_name == 0) goto out; - + strncpy ((char *) name, (char *) mp->name, ARRAY_LEN (name)); + name[ARRAY_LEN (name) - 1] = '\0'; p = hash_get_mem (am->msg_range_by_name, name); if (p == 0) goto out; @@ -99,7 +97,6 @@ vl_api_get_first_msg_id_t_handler (vl_api_get_first_msg_id_t * mp) rv = 0; out: - vec_free (name); rmp = vl_msg_api_alloc (sizeof (*rmp)); rmp->_vl_msg_id = ntohs (VL_API_GET_FIRST_MSG_ID_REPLY); rmp->context = mp->context; @@ -136,8 +133,10 @@ vl_api_api_versions_t_handler (vl_api_api_versions_t * mp) rmp->api_versions[i].major = htonl (vl->major); rmp->api_versions[i].minor = htonl (vl->minor); rmp->api_versions[i].patch = htonl (vl->patch); - vl_api_to_api_string (strnlen (vl->name, 64), vl->name, - &rmp->api_versions[i].name); + strncpy ((char *) rmp->api_versions[i].name, vl->name, + ARRAY_LEN (rmp->api_versions[i].name)); + rmp->api_versions[i].name[ARRAY_LEN (rmp->api_versions[i].name) - 1] = + '\0'; } vl_api_send_msg (reg, (u8 *) rmp); @@ -194,8 +193,8 @@ send_one_plugin_msg_ids_msg (u8 * name, u16 first_msg_id, u16 last_msg_id) clib_memset (mp, 0, sizeof (*mp)); mp->_vl_msg_id = clib_host_to_net_u16 (VL_API_TRACE_PLUGIN_MSG_IDS); - vl_api_to_api_string (strnlen_s ((char *) name, 64), (char *) name, - &mp->plugin_name); + strncpy ((char *) mp->plugin_name, (char *) name, + sizeof (mp->plugin_name) - 1); mp->first_msg_id = clib_host_to_net_u16 (first_msg_id); mp->last_msg_id = clib_host_to_net_u16 (last_msg_id); @@ -626,14 +625,11 @@ vl_api_trace_plugin_msg_ids_t_handler (vl_api_trace_plugin_msg_ids_t * mp) if (am->replay_in_progress == 0) return; - u8 *plugin_name = vl_api_from_api_to_vec (&mp->plugin_name); - vec_add1 (plugin_name, 0); - - p = hash_get_mem (am->msg_range_by_name, plugin_name); + p = hash_get_mem (am->msg_range_by_name, mp->plugin_name); if (p == 0) { clib_warning ("WARNING: traced plugin '%s' not in current image", - plugin_name); + mp->plugin_name); return; } @@ -641,17 +637,16 @@ vl_api_trace_plugin_msg_ids_t_handler (vl_api_trace_plugin_msg_ids_t * mp) if (rp->first_msg_id != clib_net_to_host_u16 (mp->first_msg_id)) { clib_warning ("WARNING: traced plugin '%s' first message id %d not %d", - plugin_name, clib_net_to_host_u16 (mp->first_msg_id), + mp->plugin_name, clib_net_to_host_u16 (mp->first_msg_id), rp->first_msg_id); } if (rp->last_msg_id != clib_net_to_host_u16 (mp->last_msg_id)) { clib_warning ("WARNING: traced plugin '%s' last message id %d not %d", - plugin_name, clib_net_to_host_u16 (mp->last_msg_id), + mp->plugin_name, clib_net_to_host_u16 (mp->last_msg_id), rp->last_msg_id); } - vec_free (plugin_name); } #define foreach_rpc_api_msg \ |