Mirror of the lttng-dev mailing list
 help / color / mirror / Atom feed
From: jp_ikaheimonen@mentor.com (JP Ikaheimonen)
Subject: [lttng-dev] [PATCH lttng-ust 7/7] Add a check against excluders
Date: Thu,  7 Nov 2013 12:22:35 +0200	[thread overview]
Message-ID: <1383819755-6891-8-git-send-email-jp_ikaheimonen@mentor.com> (raw)
In-Reply-To: <1383819755-6891-1-git-send-email-jp_ikaheimonen@mentor.com>

When matching enablers with events, first check against all
excluders of the enabler. If the event matches with any of the excluders,
then the event does not match with the enabler.

Signed-off-by: JP Ikaheimonen <jp_ikaheimonen at mentor.com>
---
 liblttng-ust/lttng-events.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/liblttng-ust/lttng-events.c b/liblttng-ust/lttng-events.c
index 915cffb..fa5596c 100644
--- a/liblttng-ust/lttng-events.c
+++ b/liblttng-ust/lttng-events.c
@@ -491,6 +491,29 @@ static
 int lttng_desc_match_enabler(const struct lttng_event_desc *desc,
 		struct lttng_enabler *enabler)
 {
+	struct lttng_ust_excluder_node *excluder;
+
+	/* If event matches with an excluder, return 'does not match' */
+	cds_list_for_each_entry(excluder, &enabler->excluder_head, node) {
+		int found = 0;
+		int count, len;
+		char *excluder_name;
+
+		for (count = 0; count < excluder->excluder.count; count++) {
+			excluder_name = (char *)(excluder->excluder.names)
+					+ count * LTTNG_UST_SYM_NAME_LEN;
+			len = strnlen(excluder_name, LTTNG_UST_SYM_NAME_LEN);
+			if (len > 0 && excluder_name[len - 1] == '*') {
+				found = strncmp(desc->name, excluder_name, len - 1);
+			} else {
+				found = strncmp(desc->name, excluder_name,
+						LTTNG_UST_SYM_NAME_LEN - 1);
+			}
+			if (!found) {
+				return 0;
+			}
+		}
+	}
 	switch (enabler->type) {
 	case LTTNG_ENABLER_WILDCARD:
 		return lttng_desc_match_wildcard_enabler(desc, enabler);
-- 
1.8.1.2




  parent reply	other threads:[~2013-11-07 10:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-07 10:22 [lttng-dev] [PATCH lttng-ust 0/7] UST Event exclusions JP Ikaheimonen
2013-11-07 10:22 ` [lttng-dev] [PATCH lttng-ust 1/7] Define a new command LTTNG_UST_EXCLUSION JP Ikaheimonen
2013-11-07 10:22 ` [lttng-dev] [PATCH lttng-ust 2/7] Define exclusion structure for UST ABI JP Ikaheimonen
2013-11-07 10:22 ` [lttng-dev] [PATCH lttng-ust 3/7] Send exclusion data through ustcomm JP Ikaheimonen
2013-11-07 10:22 ` [lttng-dev] [PATCH lttng-ust 4/7] Add excluders to enabler structure JP Ikaheimonen
2013-11-07 10:22 ` [lttng-dev] [PATCH lttng-ust 5/7] Store exclusions to enablers JP Ikaheimonen
2013-11-07 10:22 ` [lttng-dev] [PATCH lttng-ust 6/7] Add handler for LTTNG_UST_EXCLUSION in UST ABI JP Ikaheimonen
2013-11-07 10:22 ` JP Ikaheimonen [this message]
2013-11-13 14:05   ` [lttng-dev] [PATCH lttng-ust 7/7] Add a check against excluders Mathieu Desnoyers
2013-11-13 20:25     ` Mathieu Desnoyers
2013-11-14  7:26     ` Ikaheimonen, JP
2013-11-14 14:25       ` Mathieu Desnoyers
2013-11-14 14:26         ` Ikaheimonen, JP

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1383819755-6891-8-git-send-email-jp_ikaheimonen@mentor.com \
    --to=jp_ikaheimonen@mentor.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox