lttng add-trigger: replace --exclude-names with --exclude-name
[lttng-tools.git] / src / bin / lttng / commands / enable_events.c
index 627b7ebf9ebeaa1a91ee781adcc023b098780073..056977412724e297e7b0795eb5033678fed53db1 100644 (file)
@@ -327,18 +327,14 @@ end:
  * FIXME: find a good place to declare this since add trigger also uses it
  */
 LTTNG_HIDDEN
-int create_exclusion_list_and_validate(const char *event_name,
-               const char *exclusions_arg,
-               char ***exclusion_list);
-
+int validate_exclusion_list(
+               const char *event_name, const char *const *exclusions);
 
 LTTNG_HIDDEN
-int create_exclusion_list_and_validate(const char *event_name,
-               const char *exclusions_arg,
-               char ***exclusion_list)
+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)) {
@@ -347,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) ||
@@ -372,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.024166 seconds and 4 git commands to generate.