X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fevent-rule%2Ftracepoint.c;h=65e2c16a70edeae1ef500de81a46c8b711c6eb9a;hb=40fd2ccf9faa3e8b6d67d40c8ee52a2b3d1f07bd;hp=fbe1fc4bc8e1e7e62fc5534f40d18a47b5e1f61a;hpb=85b053182c4e300c717483ad231f5c04cbf5e4b7;p=lttng-tools.git diff --git a/src/common/event-rule/tracepoint.c b/src/common/event-rule/tracepoint.c index fbe1fc4bc..65e2c16a7 100644 --- a/src/common/event-rule/tracepoint.c +++ b/src/common/event-rule/tracepoint.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -952,6 +953,9 @@ enum lttng_event_rule_status lttng_event_rule_tracepoint_set_pattern( goto end; } + /* Normalize the pattern. */ + strutils_normalize_star_glob_pattern(pattern_copy); + free(tracepoint->pattern); tracepoint->pattern = pattern_copy; @@ -1117,6 +1121,27 @@ end: return valid; } +static bool domain_supports_log_levels(enum lttng_domain_type domain) +{ + bool supported; + + switch (domain) { + case LTTNG_DOMAIN_KERNEL: + supported = false; + break; + case LTTNG_DOMAIN_UST: + case LTTNG_DOMAIN_JUL: + case LTTNG_DOMAIN_LOG4J: + case LTTNG_DOMAIN_PYTHON: + supported = true; + break; + default: + abort(); + } + + return supported; +} + enum lttng_event_rule_status lttng_event_rule_tracepoint_set_log_level_rule( struct lttng_event_rule *rule, const struct lttng_log_level_rule *log_level_rule) @@ -1133,6 +1158,11 @@ enum lttng_event_rule_status lttng_event_rule_tracepoint_set_log_level_rule( tracepoint = container_of( rule, struct lttng_event_rule_tracepoint, parent); + if (!domain_supports_log_levels(tracepoint->domain)) { + status = LTTNG_EVENT_RULE_STATUS_UNSUPPORTED; + goto end; + } + if (!log_level_rule_valid(log_level_rule, tracepoint->domain)) { status = LTTNG_EVENT_RULE_STATUS_INVALID; goto end;