Пример #1
0
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;
}
Пример #2
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;
}