Fix: use a free running channel key between sessiond and kernel consumer
[lttng-tools.git] / src / bin / lttng-sessiond / kernel-consumer.c
index bc481e5c4cedbbfcac3818b85122a7aace36e8f7..89bf4596b54969ebd556d2d27faec3a66e011a98 100644 (file)
@@ -20,6 +20,7 @@
 #include <stdlib.h>
 #include <sys/stat.h>
 #include <unistd.h>
+#include <inttypes.h>
 
 #include <common/common.h>
 #include <common/defaults.h>
@@ -129,7 +130,7 @@ int kernel_consumer_add_channel(struct consumer_socket *sock,
        /* Prep channel message structure */
        consumer_init_channel_comm_msg(&lkm,
                        LTTNG_CONSUMER_ADD_CHANNEL,
-                       channel->fd,
+                       channel->key,
                        ksession->id,
                        pathname,
                        ksession->uid,
@@ -160,7 +161,7 @@ int kernel_consumer_add_channel(struct consumer_socket *sock,
        status = notification_thread_command_add_channel(
                        notification_thread_handle, session->name,
                        ksession->uid, ksession->gid,
-                       channel->channel->name, channel->fd,
+                       channel->channel->name, channel->key,
                        LTTNG_DOMAIN_KERNEL,
                        channel->channel->attr.subbuf_size * channel->channel->attr.num_subbuf);
        rcu_read_unlock();
@@ -284,7 +285,7 @@ int kernel_consumer_add_stream(struct consumer_socket *sock,
        /* Prep stream consumer message */
        consumer_init_stream_comm_msg(&lkm,
                        LTTNG_CONSUMER_ADD_STREAM,
-                       channel->fd,
+                       channel->key,
                        stream->fd,
                        stream->cpu);
 
@@ -438,7 +439,7 @@ int kernel_consumer_send_session(struct consumer_socket *sock,
                         * Inform the relay that all the streams for the
                         * channel were sent.
                         */
-                       ret = kernel_consumer_streams_sent(sock, session, chan->fd);
+                       ret = kernel_consumer_streams_sent(sock, session, chan->key);
                        if (ret < 0) {
                                goto error;
                        }
@@ -463,11 +464,11 @@ int kernel_consumer_destroy_channel(struct consumer_socket *socket,
        assert(channel);
        assert(socket);
 
-       DBG("Sending kernel consumer destroy channel key %d", channel->fd);
+       DBG("Sending kernel consumer destroy channel key %" PRIu64, channel->key);
 
        memset(&msg, 0, sizeof(msg));
        msg.cmd_type = LTTNG_CONSUMER_DESTROY_CHANNEL;
-       msg.u.destroy_channel.key = channel->fd;
+       msg.u.destroy_channel.key = channel->key;
 
        pthread_mutex_lock(socket->lock);
        health_code_update();
This page took 0.024344 seconds and 4 git commands to generate.