X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fclient.c;h=04846abf57f0ffcea7d119898197163ac998774e;hp=d7db03fa76981f38ac60b3eb9e78579c9512fa4b;hb=242388e491e4219f967ee424d7bf02035a313e6f;hpb=28b3dc1e1eca004cae6023b8e491835ecdfdd041 diff --git a/src/bin/lttng-sessiond/client.c b/src/bin/lttng-sessiond/client.c index d7db03fa7..04846abf5 100644 --- a/src/bin/lttng-sessiond/client.c +++ b/src/bin/lttng-sessiond/client.c @@ -2033,8 +2033,41 @@ error_add_context: } case LTTNG_REGISTER_TRIGGER: { + struct lttng_trigger *return_trigger; + 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_register_trigger(cmd_ctx, *sock, - notification_thread_handle); + notification_thread_handle, &return_trigger); + if (ret != LTTNG_OK) { + goto error; + } + + ret = lttng_trigger_serialize(return_trigger, &cmd_ctx->reply_payload); + if (ret) { + ERR("Failed to serialize trigger in reply to \"register trigger\" command"); + ret = LTTNG_ERR_NOMEM; + lttng_trigger_destroy(return_trigger); + goto error; + } + + lttng_trigger_destroy(return_trigger); + return_trigger = NULL; + + 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_UNREGISTER_TRIGGER: