Rename liblttsessiondcomm to liblttng-sessiond-comm, install it.
[lttng-tools.git] / liblttkconsumerd / liblttkconsumerd.c
index 1d69a4c463faffc1fa764141e287f725a625c535..9ad380c8dab5e8c1be679a0881890e929f355c57 100644 (file)
@@ -177,6 +177,7 @@ static int kconsumerd_add_fd(struct lttcomm_kconsumerd_msg *buf, int consumerd_f
        tmp_fd->state = buf->state;
        tmp_fd->max_sb_size = buf->max_sb_size;
        strncpy(tmp_fd->path_name, buf->path_name, PATH_MAX);
+       tmp_fd->path_name[PATH_MAX - 1] = '\0';
 
        /* Opening the tracefile in write mode */
        ret = open(tmp_fd->path_name,
@@ -597,12 +598,8 @@ static int kconsumerd_consumerd_recv_fd(int sfd,
        nb_fd = size / sizeof(struct lttcomm_kconsumerd_msg);
 
        /*
-        * Note: only supporting receiving one FD at a time for now.
-        * This code needs fixing if we wish to receive more (a single
-        * receive for the whole fd batch rather than one per fd).
+        * nb_fd is the number of fds we receive. One fd per recvmsg.
         */
-       assert(nb_fd == 1);
-
        for (i = 0; i < nb_fd; i++) {
                struct msghdr msg = { 0 };
 
@@ -1008,7 +1005,7 @@ end:
  */
 void kconsumerd_cleanup(void)
 {
-       struct kconsumerd_fd *iter;
+       struct kconsumerd_fd *iter, *tmp;
 
        /* remove the socket file */
        unlink(kconsumerd_command_sock_path);
@@ -1018,7 +1015,7 @@ void kconsumerd_cleanup(void)
         * running (after joining on the threads), no need to protect
         * list iteration with mutex.
         */
-       cds_list_for_each_entry(iter, &kconsumerd_data.fd_list.head, list) {
+       cds_list_for_each_entry_safe(iter, tmp, &kconsumerd_data.fd_list.head, list) {
                kconsumerd_del_fd(iter);
        }
 }
This page took 0.023525 seconds and 4 git commands to generate.