sessiond: ust-app: set capture bytecode on event notifier on creation
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Thu, 9 Apr 2020 01:40:41 +0000 (21:40 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 12 Mar 2021 20:52:52 +0000 (15:52 -0500)
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I82d2dd27da92c4dc1587b22628f8e1a8097e06c2
Depends-on: lttng-ust: I8423c510bf6af2f9bf85256e8d6f931d36f7054b

src/bin/lttng-sessiond/ust-app.c

index 01fa7fc93d7fbb738555f065d95ad0d10e39f636..cc027be99f17f76f426171f0830871e5fe61c26e 100644 (file)
@@ -28,6 +28,7 @@
 #include <lttng/condition/condition.h>
 #include <lttng/condition/event-rule-internal.h>
 #include <lttng/condition/event-rule.h>
+#include <lttng/trigger/trigger-internal.h>
 #include <common/sessiond-comm/sessiond-comm.h>
 
 #include "buffer-registry.h"
@@ -2077,6 +2078,8 @@ static int create_ust_event_notifier(struct ust_app *app,
        const struct lttng_condition *condition = NULL;
        struct lttng_ust_event_notifier event_notifier;
        const struct lttng_event_rule *event_rule = NULL;
+       unsigned int capture_bytecode_count = 0, i;
+       enum lttng_condition_status cond_status;
 
        health_code_update();
        assert(app->event_notifier_group.object);
@@ -2146,6 +2149,23 @@ static int create_ust_event_notifier(struct ust_app *app,
                }
        }
 
+       /* Set the capture bytecodes. */
+       cond_status = lttng_condition_event_rule_get_capture_descriptor_count(
+                       condition, &capture_bytecode_count);
+       assert(cond_status == LTTNG_CONDITION_STATUS_OK);
+
+       for (i = 0; i < capture_bytecode_count; i++) {
+               const struct lttng_bytecode *capture_bytecode =
+                               lttng_condition_event_rule_get_capture_bytecode_at_index(
+                                               condition, i);
+
+               ret = set_ust_capture(app, capture_bytecode,
+                               ua_event_notifier_rule->obj);
+               if (ret < 0) {
+                       goto error;
+               }
+       }
+
        /*
         * We now need to explicitly enable the event, since it
         * is disabled at creation.
This page took 0.036177 seconds and 4 git commands to generate.