lttng add-trigger: replace --exclude-names with --exclude-name
[lttng-tools.git] / src / bin / lttng / commands / enable_events.c
index 3286defc314d3d72d410125fed2194462fb1cc75..056977412724e297e7b0795eb5033678fed53db1 100644 (file)
@@ -22,7 +22,6 @@
 #include <common/string-utils/string-utils.h>
 #include <common/utils.h>
 
-#include <lttng/constant.h>
 /* Mi dependancy */
 #include <common/mi-lttng.h>
 
@@ -324,13 +323,18 @@ end:
        return ret;
 }
 
-static
-int create_exclusion_list_and_validate(const char *event_name,
-               const char *exclusions_arg,
-               char ***exclusion_list)
+/*
+ * FIXME: find a good place to declare this since add trigger also uses it
+ */
+LTTNG_HIDDEN
+int validate_exclusion_list(
+               const char *event_name, const char *const *exclusions);
+
+LTTNG_HIDDEN
+int validate_exclusion_list(
+               const char *event_name, const char *const *exclusions)
 {
-       int ret = 0;
-       char **exclusions = NULL;
+       int ret;
 
        /* Event name must be a valid globbing pattern to allow exclusions. */
        if (!strutils_is_star_glob_pattern(event_name)) {
@@ -339,19 +343,13 @@ int create_exclusion_list_and_validate(const char *event_name,
                goto error;
        }
 
-       /* Split exclusions. */
-       exclusions = strutils_split(exclusions_arg, ',', true);
-       if (!exclusions) {
-               goto error;
-       }
-
        /*
         * If the event name is a star-at-end only globbing pattern,
         * then we can validate the individual exclusions. Otherwise
         * all exclusions are passed to the session daemon.
         */
        if (strutils_is_star_at_the_end_only_glob_pattern(event_name)) {
-               char * const *exclusion;
+               const char *const *exclusion;
 
                for (exclusion = exclusions; *exclusion; exclusion++) {
                        if (!strutils_is_star_glob_pattern(*exclusion) ||
@@ -364,6 +362,34 @@ int create_exclusion_list_and_validate(const char *event_name,
                }
        }
 
+       ret = 0;
+       goto end;
+
+error:
+       ret = -1;
+
+end:
+       return ret;
+}
+
+static int create_exclusion_list_and_validate(const char *event_name,
+               const char *exclusions_arg,
+               char ***exclusion_list)
+{
+       int ret = 0;
+       char **exclusions = NULL;
+
+       /* Split exclusions. */
+       exclusions = strutils_split(exclusions_arg, ',', true);
+       if (!exclusions) {
+               goto error;
+       }
+
+       if (validate_exclusion_list(event_name, (const char **) exclusions) !=
+                       0) {
+               goto error;
+       }
+
        *exclusion_list = exclusions;
 
        goto end;
This page took 0.023822 seconds and 4 git commands to generate.