+ case LTTNG_LIST_TRIGGERS:
+ {
+ struct lttng_triggers *return_triggers = NULL;
+ size_t original_payload_size;
+ size_t payload_size;
+
+ ret = setup_empty_lttng_msg(cmd_ctx);
+ if (ret) {
+ ret = LTTNG_ERR_NOMEM;
+ goto setup_error;
+ }
+
+ original_payload_size = cmd_ctx->reply_payload.buffer.size;
+
+ ret = cmd_list_triggers(cmd_ctx, the_notification_thread_handle,
+ &return_triggers);
+ if (ret != LTTNG_OK) {
+ goto error;
+ }
+
+ assert(return_triggers);
+ ret = lttng_triggers_serialize(
+ return_triggers, &cmd_ctx->reply_payload);
+ lttng_triggers_destroy(return_triggers);
+ if (ret) {
+ ERR("Failed to serialize triggers in reply to `list triggers` command");
+ ret = LTTNG_ERR_NOMEM;
+ goto error;
+ }
+
+ payload_size = cmd_ctx->reply_payload.buffer.size -
+ original_payload_size;
+
+ update_lttng_msg(cmd_ctx, 0, payload_size);
+
+ ret = LTTNG_OK;
+ break;
+ }
+ case LTTNG_EXECUTE_ERROR_QUERY:
+ {
+ struct lttng_error_query *query;
+ const struct lttng_credentials cmd_creds = {
+ .uid = LTTNG_OPTIONAL_INIT_VALUE(cmd_ctx->creds.uid),
+ .gid = LTTNG_OPTIONAL_INIT_VALUE(cmd_ctx->creds.gid),
+ };
+ struct lttng_error_query_results *results = NULL;
+ size_t original_payload_size;
+ size_t payload_size;
+
+ ret = setup_empty_lttng_msg(cmd_ctx);
+ if (ret) {
+ ret = LTTNG_ERR_NOMEM;
+ goto setup_error;
+ }
+
+ original_payload_size = cmd_ctx->reply_payload.buffer.size;
+
+ ret = receive_lttng_error_query(
+ cmd_ctx, *sock, sock_error, &query);
+ if (ret != LTTNG_OK) {
+ goto error;
+ }
+
+ ret = cmd_execute_error_query(&cmd_creds, query, &results,
+ the_notification_thread_handle);
+ lttng_error_query_destroy(query);
+ if (ret != LTTNG_OK) {
+ goto error;
+ }
+
+ assert(results);
+ ret = lttng_error_query_results_serialize(
+ results, &cmd_ctx->reply_payload);
+ lttng_error_query_results_destroy(results);
+ if (ret) {
+ ERR("Failed to serialize error query result set in reply to `execute error query` command");
+ ret = LTTNG_ERR_NOMEM;
+ goto error;
+ }
+
+ payload_size = cmd_ctx->reply_payload.buffer.size -
+ original_payload_size;
+
+ update_lttng_msg(cmd_ctx, 0, payload_size);
+
+ ret = LTTNG_OK;
+
+ break;
+ }