X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Futils.c;h=f77a21ddb153a5ebdd88815af3e9850e37736151;hp=c9c51ede5abcb2ada1ffa7253b946e1ca646467c;hb=e6142f2e647e83238b1e399b1264e8adb05409f9;hpb=e7e84b727ee41e05f67e9002e1bfdbe411c2c62a diff --git a/src/bin/lttng-sessiond/utils.c b/src/bin/lttng-sessiond/utils.c index c9c51ede5..f77a21ddb 100644 --- a/src/bin/lttng-sessiond/utils.c +++ b/src/bin/lttng-sessiond/utils.c @@ -16,7 +16,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#define _GNU_SOURCE +#define _LGPL_SOURCE #include #include @@ -71,3 +71,27 @@ void ht_cleanup_push(struct lttng_ht *ht) error: assert(!ret); } + +int loglevels_match(int a_loglevel_type, int a_loglevel_value, + int b_loglevel_type, int b_loglevel_value, int loglevel_all_type) +{ + int match = 1; + + if (a_loglevel_type == b_loglevel_type) { + /* Same loglevel type. */ + if (b_loglevel_type != loglevel_all_type) { + /* + * Loglevel value must also match since the loglevel + * type is not all. + */ + if (a_loglevel_value != b_loglevel_value) { + match = 0; + } + } + } else { + /* Loglevel type is different: no match. */ + match = 0; + } + + return match; +}