int cmd_create_session_2_11(const struct lttng_buffer_view *payload,
char *session_name, char *hostname,
- uint32_t *live_timer, bool *snapshot)
+ uint32_t *live_timer, bool *snapshot,
+ uint64_t *id_sessiond, lttng_uuid sessiond_uuid,
+ bool *has_current_chunk, uint64_t *current_chunk_id,
+ time_t *creation_time)
{
int ret;
struct lttcomm_relayd_create_session_2_11 header;
header.session_name_len = be32toh(header.session_name_len);
header.hostname_len = be32toh(header.hostname_len);
header.live_timer = be32toh(header.live_timer);
+ header.current_chunk_id.value = be64toh(header.current_chunk_id.value);
+ header.current_chunk_id.is_set = !!header.current_chunk_id.is_set;
+ header.creation_time = be64toh(header.creation_time);
+
+ lttng_uuid_copy(sessiond_uuid, header.sessiond_uuid);
received_names_size = header.session_name_len + header.hostname_len;
if (payload->size < header_len + received_names_size) {
*live_timer = header.live_timer;
*snapshot = !!header.snapshot;
+ *current_chunk_id = header.current_chunk_id.value;
+ *has_current_chunk = header.current_chunk_id.is_set;
+ *creation_time = (time_t) header.creation_time;
ret = 0;
header.pathname_len = be32toh(header.pathname_len);
header.tracefile_size = be64toh(header.tracefile_size);
header.tracefile_count = be64toh(header.tracefile_count);
- header.trace_archive_id = be64toh(header.trace_archive_id);
+ header.trace_chunk_id = be64toh(header.trace_chunk_id);
received_names_size = header.channel_name_len + header.pathname_len;
if (payload->size < header_len + received_names_size) {
goto error;
}
- path_name = create_output_path(pathname_view.data);
+ path_name = strdup(pathname_view.data);
if (!path_name) {
PERROR("Path name allocation");
ret = -ENOMEM;
*tracefile_size = header.tracefile_size;
*tracefile_count = header.tracefile_count;
- *trace_archive_id = header.trace_archive_id;
+ *trace_archive_id = header.trace_chunk_id;
*ret_path_name = path_name;
*ret_channel_name = channel_name;
/* Move ownership to caller */