X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fenable_events.c;fp=src%2Fbin%2Flttng%2Fcommands%2Fenable_events.c;h=056977412724e297e7b0795eb5033678fed53db1;hp=627b7ebf9ebeaa1a91ee781adcc023b098780073;hb=b03a81fbbc65c1cf2e9abc67c56465137c788322;hpb=a5a212809b470aafd9c7f4cacbebfb4652feb16b diff --git a/src/bin/lttng/commands/enable_events.c b/src/bin/lttng/commands/enable_events.c index 627b7ebf9..056977412 100644 --- a/src/bin/lttng/commands/enable_events.c +++ b/src/bin/lttng/commands/enable_events.c @@ -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;