- int pending;
- uint32_t pending_reply;
-
- DBG("Perform relayd check of pending rotation for session id %" PRIu64,
- msg.u.check_rotation_pending_relay.session_id);
- pending = lttng_consumer_check_rotation_pending_relay(
- msg.u.check_rotation_pending_relay.session_id,
- msg.u.check_rotation_pending_relay.relayd_id,
- msg.u.check_rotation_pending_relay.chunk_id);
- if (pending < 0) {
- ERR("Relayd rotation pending check failed with code %i", pending);
- ret_code = LTTCOMM_CONSUMERD_ROTATION_PENDING_RELAY_FAILED;
- } else {
- pending_reply = !!pending;
- }
-
- health_code_update();
-
- ret = consumer_send_status_msg(sock, ret_code);
- if (ret < 0) {
- /* Somehow, the session daemon is not responding anymore. */
- goto end_nosignal;
- }
-
- if (pending < 0) {
- /*
- * An error occured while running the command;
- * don't send the 'pending' flag as the sessiond
- * will not read it.
- */
- break;
- }
-
- /* Send back returned value to session daemon */
- ret = lttcomm_send_unix_sock(sock, &pending_reply,
- sizeof(pending_reply));
- if (ret < 0) {
- PERROR("Failed to send rotation pending return code");
- goto error_fatal;
- }
- break;
+ enum lttng_trace_chunk_command_type close_command =
+ msg.u.close_trace_chunk.close_command.value;
+ const uint64_t relayd_id =
+ msg.u.close_trace_chunk.relayd_id.value;
+
+ ret_code = lttng_consumer_close_trace_chunk(
+ msg.u.close_trace_chunk.relayd_id.is_set ?
+ &relayd_id :
+ NULL,
+ msg.u.close_trace_chunk.session_id,
+ msg.u.close_trace_chunk.chunk_id,
+ (time_t) msg.u.close_trace_chunk.close_timestamp,
+ msg.u.close_trace_chunk.close_command.is_set ?
+ &close_command :
+ NULL);
+ goto end_msg_sessiond;