#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.
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;
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);
* 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)
{
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;
+}