sessiond: ust-app: set capture bytecode on event notifier on creation
[lttng-tools.git] / 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.02521 seconds and 5 git commands to generate.