X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fconditions%2Fevent-rule.c;h=a8fd7c91282a93f12ed4601ec74061dbcdfc8285;hp=3f6b96015de81d9df9b7c4cdef084d26cfff349a;hb=81d566c913e31b5dbd6ec304e679a3b248abec2b;hpb=7c920b632d63ffd82074430d77862176e0fc477c diff --git a/src/common/conditions/event-rule.c b/src/common/conditions/event-rule.c index 3f6b96015..a8fd7c912 100644 --- a/src/common/conditions/event-rule.c +++ b/src/common/conditions/event-rule.c @@ -751,6 +751,7 @@ lttng_condition_event_rule_append_capture_descriptor( container_of(condition, struct lttng_condition_event_rule, parent); struct lttng_capture_descriptor *descriptor = NULL; + const struct lttng_event_rule *rule = NULL; /* Only accept l-values. */ if (!condition || !IS_EVENT_RULE_CONDITION(condition) || !expr || @@ -759,6 +760,29 @@ lttng_condition_event_rule_append_capture_descriptor( goto end; } + status = lttng_condition_event_rule_get_rule(condition, &rule); + if (status != LTTNG_CONDITION_STATUS_OK) { + goto end; + } + + switch(lttng_event_rule_get_type(rule)) { + case LTTNG_EVENT_RULE_TYPE_TRACEPOINT: + case LTTNG_EVENT_RULE_TYPE_SYSCALL: + /* Supported. */ + status = LTTNG_CONDITION_STATUS_OK; + break; + case LTTNG_EVENT_RULE_TYPE_UNKNOWN: + status = LTTNG_CONDITION_STATUS_INVALID; + break; + default: + status = LTTNG_CONDITION_STATUS_UNSUPPORTED; + break; + } + + if (status != LTTNG_CONDITION_STATUS_OK) { + goto end; + } + descriptor = malloc(sizeof(*descriptor)); if (descriptor == NULL) { status = LTTNG_CONDITION_STATUS_ERROR;