socket API: Use pool index instead of handle in sock_delete handler
[vpp.git] / src / vlibmemory / socket_api.c
index 3cf2a1c..a8423d1 100644 (file)
@@ -282,8 +282,8 @@ vl_socket_read_ready (clib_file_t * uf)
            {
              ASSERT (vec_len (rp->unprocessed_input) == 0);
              vec_validate (rp->unprocessed_input, vec_len (msg_buffer) - 1);
-             clib_memcpy (rp->unprocessed_input, msg_buffer,
-                          vec_len (msg_buffer));
+             clib_memcpy_fast (rp->unprocessed_input, msg_buffer,
+                               vec_len (msg_buffer));
              _vec_len (rp->unprocessed_input) = vec_len (msg_buffer);
            }
          _vec_len (socket_main.input_buffer) = save_input_buffer_length;
@@ -470,7 +470,7 @@ vl_api_sockclnt_delete_t_handler (vl_api_sockclnt_delete_t * mp)
   if (!regp)
     return;
 
-  u32 reg_index = ntohl (mp->index);
+  u32 reg_index = socket_api_registration_handle_to_index (ntohl (mp->index));
   rp = vl_msg_api_alloc (sizeof (*rp));
   rp->_vl_msg_id = htons (VL_API_SOCKCLNT_DELETE_REPLY);
   rp->context = mp->context;
@@ -513,7 +513,7 @@ vl_sock_api_send_fd_msg (int socket_fd, int fds[], int n_fds)
   cmsg->cmsg_len = CMSG_LEN (sizeof (int) * n_fds);
   cmsg->cmsg_level = SOL_SOCKET;
   cmsg->cmsg_type = SCM_RIGHTS;
-  clib_memcpy (CMSG_DATA (cmsg), fds, sizeof (int) * n_fds);
+  clib_memcpy_fast (CMSG_DATA (cmsg), fds, sizeof (int) * n_fds);
 
   rv = sendmsg (socket_fd, &mh, 0);
   if (rv < 0)