X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvlibmemory%2Fvlib_api.c;h=15a0ba82f12b28a06d287bf60d674b834c6b5240;hb=94495f2a6a68ac2202b7715ce09620f1ba6fe673;hp=9465cfc30d66bd628eead3090ec48c0ebe8f272e;hpb=e86a8edd3c14fb41ace2a12efd17bc7772bf623f;p=vpp.git diff --git a/src/vlibmemory/vlib_api.c b/src/vlibmemory/vlib_api.c index 9465cfc30d6..15a0ba82f12 100644 --- a/src/vlibmemory/vlib_api.c +++ b/src/vlibmemory/vlib_api.c @@ -109,9 +109,8 @@ vl_api_get_first_msg_id_t_handler (vl_api_get_first_msg_id_t * mp) if (am->msg_range_by_name == 0) goto out; - - strncpy ((char *) name, (char *) mp->name, ARRAY_LEN (name) - 1); - + 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; @@ -134,13 +133,13 @@ vl_api_api_versions_t_handler (vl_api_api_versions_t * mp) { api_main_t *am = &api_main; vl_api_api_versions_reply_t *rmp; - svm_queue_t *q; + vl_api_registration_t *reg; u32 nmsg = vec_len (am->api_version_list); int msg_size = sizeof (*rmp) + sizeof (rmp->api_versions[0]) * nmsg; int i; - q = vl_api_client_index_to_input_queue (mp->client_index); - if (q == 0) + reg = vl_api_client_index_to_registration (mp->client_index); + if (!reg) return; rmp = vl_msg_api_alloc (msg_size); @@ -157,14 +156,17 @@ 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); - strncpy ((char *) rmp->api_versions[i].name, vl->name, 64 - 1); + 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_msg_api_send_shmem (q, (u8 *) & rmp); + vl_api_send_msg (reg, (u8 *) rmp); } -#define foreach_vlib_api_msg \ -_(GET_FIRST_MSG_ID, get_first_msg_id) \ +#define foreach_vlib_api_msg \ +_(GET_FIRST_MSG_ID, get_first_msg_id) \ _(API_VERSIONS, api_versions) /* @@ -287,12 +289,6 @@ vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node, uword *event_data = 0; f64 now; - if ((rv = vl_mem_api_init (am->region_name)) < 0) - { - clib_warning ("memory_api_init returned %d, quitting...", rv); - return 0; - } - if ((error = vl_sock_api_init (vm))) { clib_error_report (error); @@ -391,9 +387,9 @@ vl_api_clnt_process (vlib_main_t * vm, vlib_node_runtime_t * node, */ if (PREDICT_FALSE (vec_len (am->vlib_private_rps))) { - vl_mem_api_handle_msg_private (vm, node, private_segment_rotor++); if (private_segment_rotor >= vec_len (am->vlib_private_rps)) private_segment_rotor = 0; + vl_mem_api_handle_msg_private (vm, node, private_segment_rotor++); } vlib_process_wait_for_event_or_clock (vm, sleep_time);