X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl.c;h=146783fd3e5e09289ebb0d14d0606fd50a1c0aeb;hb=d31d3e8cf774b98a8ed46b8c7f6273364360f246;hp=9cb2eb4a695648bfb3f4002248ffdeae3a6d6d64;hpb=b4e3ceb9d379829bc5d6ec799f83086317aeafd8;p=lttng-tools.git diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c index 9cb2eb4a6..146783fd3 100644 --- a/src/lib/lttng-ctl/lttng-ctl.c +++ b/src/lib/lttng-ctl/lttng-ctl.c @@ -1782,6 +1782,38 @@ error: return ret; } +int lttng_event_get_filter_string(struct lttng_event *event, + const char **filter_string) +{ + int ret = 0; + struct lttcomm_event_extended_header *ext_header; + + if (!event || !filter_string) { + ret = -LTTNG_ERR_INVALID; + goto end; + } + + ext_header = event->extended.ptr; + + if (!ext_header) { + /* + * This can happen since the lttng_event structure is + * used for other tasks where this pointer is never set. + */ + *filter_string = NULL; + goto end; + } + + if (ext_header->filter_len) { + *filter_string = ((const char *) (ext_header)) + + sizeof(*ext_header); + } else { + *filter_string = NULL; + } + +end: + return ret; +} /* * Sets the tracing_group variable with name.