예제 #1
0
파일: runas.c 프로젝트: frdeso/lttng-tools
static
int do_send_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_send_fds_unix_sock(worker->sockpair[1], &fd, 1);
	if (len < 0) {
		PERROR("lttcomm_send_fds_unix_sock");
		return -1;
	}
	if (close(fd) < 0) {
		PERROR("close");
		return -1;
	}
	return 0;
}
예제 #2
0
파일: runas.c 프로젝트: lttng/lttng-tools
static
int do_send_fd(int sock, int fd)
{
	ssize_t len;

	if (fd < 0) {
		ERR("Attempt to send invalid file descriptor to master (fd = %i)", fd);
		/* Return 0 as this is not a fatal error. */
		return 0;
	}

	len = lttcomm_send_fds_unix_sock(sock, &fd, 1);
	if (len < 0) {
		PERROR("lttcomm_send_fds_unix_sock");
		return -1;
	}
	return 0;
}