static int do_recv_fd(int sock, int *fd) { ssize_t len; len = lttcomm_recv_fds_unix_sock(sock, fd, 1); if (!len) { return -1; } else if (len < 0) { PERROR("lttcomm_recv_fds_unix_sock"); return -1; } if (*fd < 0) { ERR("Invalid file descriptor received from worker (fd = %i)", *fd); /* Return 0 as this is not a fatal error. */ return 0; } return 0; }
static int do_recv_fd(struct run_as_worker *worker, enum run_as_cmd cmd, int *fd) { ssize_t len; switch (cmd) { case RUN_AS_OPEN: break; default: return 0; } if (*fd < 0) { return 0; } len = lttcomm_recv_fds_unix_sock(worker->sockpair[0], fd, 1); if (!len) { return -1; } else if (len < 0) { PERROR("lttcomm_recv_fds_unix_sock"); return -1; } return 0; }