X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Futils.c;h=f5f1cff638810207d17086f88a9af6b89fea768d;hb=fb27f84c28e9d8ec7c8ce5ac1b541b0671a4569e;hp=2ff57cd1465c6071eb0d89705b061ef3dafac05f;hpb=6cd525e813795a1d5e38feac8dedf2c73ffb1274;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/utils.c b/src/bin/lttng-sessiond/utils.c index 2ff57cd14..f5f1cff63 100644 --- a/src/bin/lttng-sessiond/utils.c +++ b/src/bin/lttng-sessiond/utils.c @@ -17,6 +17,7 @@ */ #define _GNU_SOURCE +#define _LGPL_SOURCE #include #include @@ -52,6 +53,9 @@ void ht_cleanup_push(struct lttng_ht *ht) ssize_t ret; int fd = ht_cleanup_pipe[1]; + if (!ht) { + return; + } if (fd < 0) return; ret = lttng_write(fd, &ht, sizeof(ht)); @@ -68,3 +72,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; +}