X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fenable_events.c;h=056977412724e297e7b0795eb5033678fed53db1;hb=b03a81fbbc65c1cf2e9abc67c56465137c788322;hp=3286defc314d3d72d410125fed2194462fb1cc75;hpb=0c4e727b6aeb61a5fd2749abede3c9b56f84504c;p=lttng-tools.git diff --git a/src/bin/lttng/commands/enable_events.c b/src/bin/lttng/commands/enable_events.c index 3286defc3..056977412 100644 --- a/src/bin/lttng/commands/enable_events.c +++ b/src/bin/lttng/commands/enable_events.c @@ -22,7 +22,6 @@ #include #include -#include /* Mi dependancy */ #include @@ -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;