#include <common/sessiond-comm/sessiond-comm.h>
#include <common/sessiond-comm/relayd.h>
#include <common/compat/fcntl.h>
+#include <common/compat/endian.h>
#include <common/pipe.h>
#include <common/relayd/relayd.h>
#include <common/utils.h>
health_code_update();
- if (msg.cmd_type == LTTNG_CONSUMER_STOP) {
- /*
- * Notify the session daemon that the command is completed.
- *
- * On transport layer error, the function call will print an error
- * message so handling the returned code is a bit useless since we
- * return an error code anyway.
- */
- (void) consumer_send_status_msg(sock, ret_code);
- return -ENOENT;
- }
+ /* Deprecated command */
+ assert(msg.cmd_type != LTTNG_CONSUMER_STOP);
health_code_update();
* happens while tearing down.
*/
ERR("Unable to find channel key %" PRIu64, msg.u.stream.channel_key);
- ret_code = LTTNG_ERR_KERN_CHAN_NOT_FOUND;
+ ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND;
}
health_code_update();
health_poll_entry();
ret = lttng_consumer_poll_socket(consumer_sockpoll);
health_poll_exit();
- if (ret < 0) {
- rcu_read_unlock();
- return -EINTR;
+ if (ret) {
+ goto error_fatal;
}
health_code_update();
*/
ERR("Unable to find channel key %" PRIu64,
msg.u.sent_streams.channel_key);
- ret_code = LTTNG_ERR_KERN_CHAN_NOT_FOUND;
+ ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND;
}
health_code_update();
relayd = consumer_find_relayd(index);
if (relayd == NULL) {
DBG("Unable to find relayd %" PRIu64, index);
- ret_code = LTTNG_ERR_NO_CONSUMER;
+ ret_code = LTTCOMM_CONSUMERD_RELAYD_FAIL;
}
/*
msg.u.snapshot_channel.relayd_id, ctx);
if (ret < 0) {
ERR("Snapshot metadata failed");
- ret_code = LTTNG_ERR_KERN_META_FAIL;
+ ret_code = LTTCOMM_CONSUMERD_ERROR_METADATA;
}
} else {
ret = lttng_kconsumer_snapshot_channel(msg.u.snapshot_channel.key,
ctx);
if (ret < 0) {
ERR("Snapshot channel failed");
- ret_code = LTTNG_ERR_KERN_CHAN_FAIL;
+ ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND;
}
}
channel = consumer_find_channel(key);
if (!channel) {
ERR("Kernel consumer destroy channel %" PRIu64 " not found", key);
- ret_code = LTTNG_ERR_KERN_CHAN_NOT_FOUND;
+ ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND;
}
health_code_update();
health_code_update();
+ /* Stop right now if no channel was found. */
+ if (!channel) {
+ goto end_nosignal;
+ }
+
/*
* This command should ONLY be issued for channel with streams set in
* no monitor mode.