CLI: Add lttng_trace_format_descriptor to lttng_session_extended
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.cpp
index f975f31e227981589c32d13dd725bdf115d6e3df..214085c55a29bd11c4f548db101eb64e6c488989 100644 (file)
@@ -898,6 +898,8 @@ static bool is_trace_format_configuration_supported(
                        mapping = {
                                        {LTTNG_TRACE_FORMAT_DESCRIPTOR_TYPE_CTF_1,
                                                        LTTCOMM_RELAYD_CONFIGURATION_TRACE_FORMAT_SUPPORTED_CTF1},
+                                       {LTTNG_TRACE_FORMAT_DESCRIPTOR_TYPE_CTF_2,
+                                                       LTTCOMM_RELAYD_CONFIGURATION_TRACE_FORMAT_SUPPORTED_CTF2},
                        };
 
        auto it = mapping.find(trace_format.type());
@@ -4053,10 +4055,13 @@ enum lttng_error_code cmd_list_lttng_sessions(
        cds_list_for_each_entry(session, &list->head, list) {
                struct lttng_session tmp_session = {};
                struct lttng_session_extended tmp_extended = {};
+               struct lttng_payload trace_format_buffer;
+               lttng_payload_init(&trace_format_buffer);
 
                tmp_session.extended.ptr = &tmp_extended;
 
                if (!session_get(session)) {
+                       lttng_payload_reset(&trace_format_buffer);
                        continue;
                }
                /*
@@ -4065,6 +4070,7 @@ enum lttng_error_code cmd_list_lttng_sessions(
                if (!session_access_ok(session, uid) ||
                                session->destroyed) {
                        session_put(session);
+                       lttng_payload_reset(&trace_format_buffer);
                        continue;
                }
 
@@ -4086,13 +4092,19 @@ enum lttng_error_code cmd_list_lttng_sessions(
                        continue;
                }
 
+               session->trace_format->serialize(&trace_format_buffer);
+
                strncpy(tmp_session.name, session->name, NAME_MAX);
                tmp_session.name[NAME_MAX - 1] = '\0';
                tmp_session.enabled = session->active;
                tmp_session.snapshot_mode = session->snapshot_mode;
                tmp_session.live_timer_interval = session->live_timer;
                LTTNG_OPTIONAL_SET(&tmp_extended.creation_time, (uint64_t) session->creation_time);
+               tmp_extended.serialized_trace_format_descriptor =
+                               lttng_buffer_view_from_dynamic_buffer(&trace_format_buffer.buffer,
+                                               0, trace_format_buffer.buffer.size);
                ret = lttng_session_serialize(&tmp_session, reply_payload);
+               lttng_payload_reset(&trace_format_buffer);
                if (ret) {
                        ret_code = LTTNG_ERR_FATAL;
                        goto error;
This page took 0.026378 seconds and 5 git commands to generate.