Propagate trace format to relayd on session creation
[lttng-tools.git] / src / bin / lttng-sessiond / consumer.cpp
index a482dde8aff041cee9502cd7be23cb1f73f5ee43..dcbcc892852b2102d839fd3a0ea78ebdb9d7098f 100644 (file)
@@ -1139,12 +1139,12 @@ error:
  * On success return positive value. On error, negative value.
  */
 int consumer_send_relayd_socket(struct consumer_socket *consumer_sock,
-               struct lttcomm_relayd_sock *rsock, struct consumer_output *consumer,
-               enum lttng_stream_type type, uint64_t session_id,
-               const char *session_name, const char *hostname,
-               const char *base_path, int session_live_timer,
-               const uint64_t *current_chunk_id, time_t session_creation_time,
-               bool session_name_contains_creation_time)
+               struct lttcomm_relayd_sock *rsock,
+               struct consumer_output *consumer,
+               enum lttng_stream_type type,
+               const struct ltt_session& session,
+               const char *base_path_override,
+               const uint64_t *current_chunk_id)
 {
        int ret;
        int fd;
@@ -1155,6 +1155,8 @@ int consumer_send_relayd_socket(struct consumer_socket *consumer_sock,
        LTTNG_ASSERT(consumer);
        LTTNG_ASSERT(consumer_sock);
 
+       const char *base_path = base_path_override != NULL ? base_path_override : session.base_path;
+
        memset(&msg, 0, sizeof(msg));
        /* Bail out if consumer is disabled */
        if (!consumer->enabled) {
@@ -1166,13 +1168,11 @@ int consumer_send_relayd_socket(struct consumer_socket *consumer_sock,
                char output_path[LTTNG_PATH_MAX] = {};
                uint64_t relayd_session_id;
 
-               ret = relayd_create_session(rsock, &relayd_session_id,
-                               session_name, hostname, base_path,
-                               session_live_timer, consumer->snapshot,
-                               session_id, the_sessiond_uuid, current_chunk_id,
-                               session_creation_time,
-                               session_name_contains_creation_time,
-                               output_path);
+               ret = relayd_create_session(rsock, &relayd_session_id, session.name,
+                               session.hostname, base_path, session.live_timer, consumer->snapshot,
+                               session.id, the_sessiond_uuid, current_chunk_id,
+                               session.creation_time, session.name_contains_creation_time,
+                               output_path, *session.trace_format);
                if (ret < 0) {
                        /* Close the control socket. */
                        (void) relayd_close(rsock);
@@ -1191,7 +1191,7 @@ int consumer_send_relayd_socket(struct consumer_socket *consumer_sock,
         */
        msg.u.relayd_sock.net_index = consumer->net_seq_index;
        msg.u.relayd_sock.type = type;
-       msg.u.relayd_sock.session_id = session_id;
+       msg.u.relayd_sock.session_id = session.id;
        msg.u.relayd_sock.major = rsock->major;
        msg.u.relayd_sock.minor = rsock->minor;
        msg.u.relayd_sock.relayd_socket_protocol = rsock->sock.proto;
This page took 0.027657 seconds and 5 git commands to generate.