Cleanup: remove duplicated code in snapshot record command
[lttng-tools.git] / src / bin / lttng-sessiond / consumer.c
index 12db236d08335c34221c7305527be81c049f97d1..99b22210d3ffff07538900b465a32e46008ba8e4 100644 (file)
@@ -35,6 +35,7 @@
 #include "health-sessiond.h"
 #include "ust-app.h"
 #include "utils.h"
+#include "lttng-sessiond.h"
 
 /*
  * Send a data payload using a given consumer socket of size len.
@@ -1057,7 +1058,8 @@ error:
 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,
-               char *session_name, char *hostname, int session_live_timer)
+               const char *session_name, const char *hostname,
+               int session_live_timer)
 {
        int ret;
        struct lttcomm_consumer_msg msg;
@@ -1078,7 +1080,8 @@ int consumer_send_relayd_socket(struct consumer_socket *consumer_sock,
                ret = relayd_create_session(rsock,
                                &msg.u.relayd_sock.relayd_session_id,
                                session_name, hostname, session_live_timer,
-                               consumer->snapshot);
+                               consumer->snapshot, session_id,
+                               sessiond_uuid);
                if (ret < 0) {
                        /* Close the control socket. */
                        (void) relayd_close(rsock);
@@ -1416,7 +1419,7 @@ end:
  * Returns LTTNG_OK on success or else an LTTng error code.
  */
 enum lttng_error_code consumer_snapshot_channel(struct consumer_socket *socket,
-               uint64_t key, struct snapshot_output *output, int metadata,
+               uint64_t key, const struct snapshot_output *output, int metadata,
                uid_t uid, gid_t gid, const char *session_path, int wait,
                uint64_t nb_packets_per_stream, uint64_t trace_archive_id)
 {
@@ -1894,3 +1897,27 @@ error:
        health_code_update();
        return ret;
 }
+
+int consumer_init(struct consumer_socket *socket,
+               const lttng_uuid sessiond_uuid)
+{
+       int ret;
+       struct lttcomm_consumer_msg msg = {
+               .cmd_type = LTTNG_CONSUMER_INIT,
+       };
+
+       assert(socket);
+
+       DBG("Sending consumer initialization command");
+       lttng_uuid_copy(msg.u.init.sessiond_uuid, sessiond_uuid);
+
+       health_code_update();
+       ret = consumer_send_msg(socket, &msg);
+       if (ret < 0) {
+               goto error;
+       }
+
+error:
+       health_code_update();
+       return ret;
+}
This page took 0.025567 seconds and 5 git commands to generate.