sessiond: add support for anonymous triggers
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index 76258dc87d3e461b208a48540de527844dd7bf31..f0d5c571da18aa3e7752ef2307dfdf0afd12e3a5 100644 (file)
@@ -34,8 +34,8 @@
 #include <lttng/channel.h>
 #include <lttng/condition/condition-internal.h>
 #include <lttng/condition/condition.h>
-#include <lttng/condition/on-event-internal.h>
-#include <lttng/condition/on-event.h>
+#include <lttng/condition/event-rule-matches-internal.h>
+#include <lttng/condition/event-rule-matches.h>
 #include <lttng/error-query-internal.h>
 #include <lttng/event-rule/event-rule-internal.h>
 #include <lttng/event-rule/event-rule.h>
@@ -4315,12 +4315,12 @@ enum lttng_error_code synchronize_tracer_notifier_register(
        assert(trigger_status == LTTNG_TRIGGER_STATUS_OK);
 
        assert(condition);
-       assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_ON_EVENT);
+       assert(lttng_condition_get_type(condition) ==
+                       LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES);
 
        trigger_status = lttng_trigger_get_name(trigger, &trigger_name);
        trigger_name = trigger_status == LTTNG_TRIGGER_STATUS_OK ?
-                       trigger_name :
-                       "(unnamed)";
+                       trigger_name : "(anonymous)";
 
        session_lock_list();
        switch (trigger_domain) {
@@ -4385,6 +4385,7 @@ end_unlock_session_list:
 
 enum lttng_error_code cmd_register_trigger(const struct lttng_credentials *cmd_creds,
                struct lttng_trigger *trigger,
+               bool is_trigger_anonymous,
                struct notification_thread_handle *notification_thread,
                struct lttng_trigger **return_trigger)
 {
@@ -4395,7 +4396,7 @@ enum lttng_error_code cmd_register_trigger(const struct lttng_credentials *cmd_c
 
        trigger_status = lttng_trigger_get_name(trigger, &trigger_name);
        trigger_name = trigger_status == LTTNG_TRIGGER_STATUS_OK ?
-                       trigger_name : "(unnamed)";
+                       trigger_name : "(anonymous)";
 
        trigger_status = lttng_trigger_get_owner_uid(
                trigger, &trigger_owner);
@@ -4443,8 +4444,8 @@ enum lttng_error_code cmd_register_trigger(const struct lttng_credentials *cmd_c
         * it is safe to use without any locking as its properties are
         * immutable.
         */
-       ret_code = notification_thread_command_register_trigger(notification_thread,
-                       trigger);
+       ret_code = notification_thread_command_register_trigger(
+                       notification_thread, trigger, is_trigger_anonymous);
        if (ret_code != LTTNG_OK) {
                DBG("Failed to register trigger to notification thread: trigger name = '%s', trigger owner uid = %d, error code = %d",
                                trigger_name, (int) trigger_owner, ret_code);
@@ -4453,7 +4454,7 @@ enum lttng_error_code cmd_register_trigger(const struct lttng_credentials *cmd_c
 
        trigger_status = lttng_trigger_get_name(trigger, &trigger_name);
        trigger_name = trigger_status == LTTNG_TRIGGER_STATUS_OK ?
-                       trigger_name : "(unnamed)";
+                       trigger_name : "(anonymous)";
 
        /*
         * Synchronize tracers if the trigger adds an event notifier.
@@ -4497,7 +4498,8 @@ enum lttng_error_code synchronize_tracer_notifier_unregister(
                                        trigger);
 
        assert(condition);
-       assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_ON_EVENT);
+       assert(lttng_condition_get_type(condition) ==
+                       LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES);
 
        session_lock_list();
        switch (trigger_domain) {
@@ -4554,7 +4556,7 @@ enum lttng_error_code cmd_unregister_trigger(const struct lttng_credentials *cmd
        struct lttng_trigger *sessiond_trigger = NULL;
 
        trigger_status = lttng_trigger_get_name(trigger, &trigger_name);
-       trigger_name = trigger_status == LTTNG_TRIGGER_STATUS_OK ? trigger_name : "(unnamed)";
+       trigger_name = trigger_status == LTTNG_TRIGGER_STATUS_OK ? trigger_name : "(anonymous)";
        trigger_status = lttng_trigger_get_owner_uid(trigger, &trigger_owner);
        assert(trigger_status == LTTNG_TRIGGER_STATUS_OK);
 
@@ -4700,7 +4702,7 @@ enum lttng_error_code cmd_execute_error_query(const struct lttng_credentials *cm
 
        trigger_status = lttng_trigger_get_name(matching_trigger, &trigger_name);
        trigger_name = trigger_status == LTTNG_TRIGGER_STATUS_OK ?
-                       trigger_name : "(unnamed)";
+                       trigger_name : "(anonymous)";
        trigger_status = lttng_trigger_get_owner_uid(matching_trigger,
                        &trigger_owner);
        assert(trigger_status == LTTNG_TRIGGER_STATUS_OK);
@@ -4763,6 +4765,7 @@ enum lttng_error_code cmd_execute_error_query(const struct lttng_credentials *cm
                break;
        }
        default:
+               abort();
                break;
        }
 
This page took 0.024434 seconds and 4 git commands to generate.