示例#1
0
文件: cmd-2-1.c 项目: 5kg/lttng-tools
int cmd_recv_stream_2_1(struct relay_connection *conn,
		struct relay_stream *stream)
{
	int ret;
	struct lttcomm_relayd_add_stream stream_info;

	assert(conn);
	assert(stream);

	ret = cmd_recv(conn->sock, &stream_info, sizeof(stream_info));
	if (ret < 0) {
		ERR("Unable to recv stream version 2.1");
		goto error;
	}

	stream->path_name = create_output_path(stream_info.pathname);
	if (stream->path_name == NULL) {
		PERROR("Path name allocation");
		ret = -ENOMEM;
		goto error;
	}

	stream->channel_name = strdup(stream_info.channel_name);
	if (stream->channel_name == NULL) {
		ret = -errno;
		PERROR("Path name allocation");
		goto error;
	}
	ret = 0;

error:
	return ret;
}
示例#2
0
int cmd_create_session_2_4(struct relay_command *cmd,
		struct relay_session *session)
{
	int ret;
	struct lttcomm_relayd_create_session_2_4 session_info;

	assert(cmd);
	assert(session);

	ret = cmd_recv(cmd->sock, &session_info, sizeof(session_info));
	if (ret < 0) {
		ERR("Unable to recv session info version 2.4");
		goto error;
	}

	strncpy(session->session_name, session_info.session_name,
			sizeof(session->session_name));
	strncpy(session->hostname, session_info.hostname,
			sizeof(session->hostname));
	session->live_timer = be32toh(session_info.live_timer);
	session->snapshot = be32toh(session_info.snapshot);

	ret = 0;

error:
	return ret;
}
示例#3
0
struct cmd_list *
cmd_list_recv(struct buffer *b)
{
	struct cmd_list	*cmdlist;
	struct cmd	*cmd;
	u_int		 n;

	buffer_read(b, &n, sizeof n);

	cmdlist = xmalloc(sizeof *cmdlist);
	TAILQ_INIT(cmdlist);

	while (n-- > 0) {
		cmd = cmd_recv(b);
		TAILQ_INSERT_TAIL(cmdlist, cmd, qentry);
	}

	return (cmdlist);
}