Cleanup: Reduce scope of connections in main relayd thread
[lttng-tools.git] / src / bin / lttng-sessiond / event.c
index 099cbd18db8ea42d767951f094df5dfd81856fbe..a8e63896d001a5e36a64a6639c410603d4006dfd 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #define _GNU_SOURCE
+#define _LGPL_SOURCE
 #include <errno.h>
 #include <urcu/list.h>
 #include <string.h>
@@ -180,6 +181,7 @@ int event_kernel_disable_all(struct ltt_kernel_channel *kchan)
 
 /*
  * Enable kernel tracepoint event for a channel from the kernel session.
+ * We own filter_expression and filter.
  */
 int event_kernel_enable_tracepoint(struct ltt_kernel_channel *kchan,
                struct lttng_event *event)
@@ -407,6 +409,7 @@ error:
 
 /*
  * Enable UST tracepoint event for a channel from a UST session.
+ * We own filter_expression, filter, and exclusion.
  */
 int event_ust_enable_tracepoint(struct ltt_ust_session *usess,
                struct ltt_ust_channel *uchan, struct lttng_event *event,
@@ -428,6 +431,10 @@ int event_ust_enable_tracepoint(struct ltt_ust_session *usess,
        if (uevent == NULL) {
                uevent = trace_ust_create_event(event, filter_expression,
                        filter, exclusion);
+               /* We have passed ownership */
+               filter_expression = NULL;
+               filter = NULL;
+               exclusion = NULL;
                if (uevent == NULL) {
                        ret = LTTNG_ERR_UST_ENABLE_FAIL;
                        goto error;
@@ -475,6 +482,9 @@ int event_ust_enable_tracepoint(struct ltt_ust_session *usess,
 
 end:
        rcu_read_unlock();
+       free(filter_expression);
+       free(filter);
+       free(exclusion);
        return ret;
 
 error:
@@ -490,6 +500,9 @@ error:
                trace_ust_destroy_event(uevent);
        }
        rcu_read_unlock();
+       free(filter_expression);
+       free(filter);
+       free(exclusion);
        return ret;
 }
 
@@ -715,26 +728,31 @@ const char *event_get_default_agent_ust_name(enum lttng_domain_type domain)
 {
        const char *default_event_name = NULL;
 
-       if (domain == LTTNG_DOMAIN_JUL) {
+       switch (domain) {
+       case LTTNG_DOMAIN_LOG4J:
                if (is_root) {
-                       default_event_name = DEFAULT_SYS_JUL_EVENT_NAME;
+                       default_event_name = DEFAULT_SYS_LOG4J_EVENT_NAME;
                } else {
-                       default_event_name = DEFAULT_USER_JUL_EVENT_NAME;
+                       default_event_name = DEFAULT_USER_LOG4J_EVENT_NAME;
                }
-       } else if (domain == LTTNG_DOMAIN_LOG4J) {
+               break;
+       case LTTNG_DOMAIN_JUL:
                if (is_root) {
-                       default_event_name = DEFAULT_SYS_LOG4J_EVENT_NAME;
+                       default_event_name = DEFAULT_SYS_JUL_EVENT_NAME;
                } else {
-                       default_event_name = DEFAULT_USER_LOG4J_EVENT_NAME;
+                       default_event_name = DEFAULT_USER_JUL_EVENT_NAME;
                }
-       } else {
+               break;
+       case LTTNG_DOMAIN_PYTHON:
+               default_event_name = DEFAULT_USER_PYTHON_EVENT_NAME;
+               break;
+       default:
                assert(0);
        }
 
        return default_event_name;
 }
 
-
 /*
  * Disable a single agent event for a given UST session.
  *
@@ -770,6 +788,8 @@ int event_agent_disable(struct ltt_ust_session *usess, struct agent *agt,
                ust_channel_name = DEFAULT_JUL_CHANNEL_NAME;
        } else if (agt->domain == LTTNG_DOMAIN_LOG4J) {
                ust_channel_name = DEFAULT_LOG4J_CHANNEL_NAME;
+       } else if (agt->domain == LTTNG_DOMAIN_PYTHON) {
+               ust_channel_name = DEFAULT_PYTHON_CHANNEL_NAME;
        } else {
                ret = LTTNG_ERR_INVALID;
                goto error;
This page took 0.024215 seconds and 4 git commands to generate.