int consumer_mkdir(struct consumer_socket *socket, uint64_t session_id,
const struct consumer_output *output, const char *path,
uid_t uid, gid_t gid);
+int consumer_init(struct consumer_socket *socket,
+ const lttng_uuid sessiond_uuid);
#endif /* _CONSUMER_H */
health_code_update();
/*
- * Transfer the write-end of the channel monitoring and rotate pipe
- * to the consumer by issuing a SET_CHANNEL_MONITOR_PIPE command.
+ * Transfer the write-end of the channel monitoring pipe to the consumer
+ * by issuing a SET_CHANNEL_MONITOR_PIPE command.
*/
cmd_socket_wrapper = consumer_allocate_socket(&consumer_data->cmd_sock);
if (!cmd_socket_wrapper) {
}
cmd_socket_wrapper->lock = &consumer_data->lock;
+ pthread_mutex_lock(cmd_socket_wrapper->lock);
+ ret = consumer_init(cmd_socket_wrapper, sessiond_uuid);
+ if (ret) {
+ ERR("Failed to send sessiond uuid to consumer daemon");
+ mark_thread_intialization_as_failed(notifiers);
+ pthread_mutex_unlock(cmd_socket_wrapper->lock);
+ goto error;
+ }
+ pthread_mutex_unlock(cmd_socket_wrapper->lock);
+
ret = consumer_send_channel_monitor_pipe(cmd_socket_wrapper,
consumer_data->channel_monitor_pipe);
if (ret) {
const lttng_uuid sessiond_uuid)
{
enum lttcomm_return_code ret;
+ char uuid_str[UUID_STR_LEN];
if (ctx->sessiond_uuid.is_set) {
ret = LTTCOMM_CONSUMERD_ALREADY_SET;
ctx->sessiond_uuid.is_set = true;
memcpy(ctx->sessiond_uuid.value, sessiond_uuid, sizeof(lttng_uuid));
ret = LTTCOMM_CONSUMERD_SUCCESS;
+ lttng_uuid_to_str(sessiond_uuid, uuid_str);
+ DBG("Received session daemon UUID: %s", uuid_str);
end:
return ret;
}