X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl.c;h=665aba57d7cb80f37656c670fe6d3760747eb7a0;hp=004b0ccebf1c7b24e49674e2f3d66d53bfde7abe;hb=0c82ac624169ec9ec062f395e55abfe992d0fd91;hpb=a5dfbb9db7ba31913657ed921006b13977b7b426 diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c index 004b0cceb..665aba57d 100644 --- a/src/lib/lttng-ctl/lttng-ctl.c +++ b/src/lib/lttng-ctl/lttng-ctl.c @@ -19,7 +19,6 @@ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#define _GNU_SOURCE #define _LGPL_SOURCE #include #include @@ -759,7 +758,7 @@ error: } /* - * Generate the filter bytecode from a give filter expression string. Put the + * Generate the filter bytecode from a given filter expression string. Put the * newly allocated parser context in ctxp and populate the lsm object with the * expression len. * @@ -1000,7 +999,8 @@ int lttng_enable_event_with_exclusions(struct lttng_handle *handle, /* Put exclusion names first in the data */ while (exclusion_count--) { strncpy(varlen_data + LTTNG_SYMBOL_NAME_LEN * exclusion_count, - *(exclusion_list + exclusion_count), LTTNG_SYMBOL_NAME_LEN); + *(exclusion_list + exclusion_count), + LTTNG_SYMBOL_NAME_LEN - 1); } /* Add filter expression next */ if (lsm.u.enable.expression_len != 0) { @@ -1091,10 +1091,6 @@ int lttng_disable_event_ext(struct lttng_handle *handle, } lsm.cmd_type = LTTNG_DISABLE_EVENT; - if (ev->name[0] == '\0') { - /* Disable all events */ - lttng_ctl_copy_string(ev->name, "*", sizeof(ev->name)); - } lttng_ctl_copy_lttng_domain(&lsm.domain, &handle->domain); /* FIXME: copying non-packed struct to packed struct. */ @@ -1880,6 +1876,7 @@ int lttng_data_pending(const char *session_name) { int ret; struct lttcomm_session_msg lsm; + uint8_t *pending = NULL; if (session_name == NULL) { return -LTTNG_ERR_INVALID; @@ -1891,18 +1888,18 @@ int lttng_data_pending(const char *session_name) lttng_ctl_copy_string(lsm.session.name, session_name, sizeof(lsm.session.name)); - ret = lttng_ctl_ask_sessiond(&lsm, NULL); - - /* - * The lttng_ctl_ask_sessiond function negate the return code if it's not - * LTTNG_OK so getting -1 means that the reply ret_code was 1 thus meaning - * that the data is available. Yes it is hackish but for now this is the - * only way. - */ - if (ret == -1) { - ret = 1; + ret = lttng_ctl_ask_sessiond(&lsm, (void **) &pending); + if (ret < 0) { + goto end; + } else if (ret != 1) { + /* Unexpected payload size */ + ret = -LTTNG_ERR_INVALID; + goto end; } + ret = (int) *pending; +end: + free(pending); return ret; } @@ -1954,7 +1951,7 @@ int lttng_create_session_live(const char *name, const char *url, struct lttcomm_session_msg lsm; struct lttng_uri *uris = NULL; - if (name == NULL) { + if (name == NULL || timer_interval == 0) { return -LTTNG_ERR_INVALID; } @@ -1993,17 +1990,18 @@ end: /* * List PIDs in the tracker. * - * @enabled is set to whether the PID tracker is enabled. - * @pids is set to an allocated array of PIDs currently tracked. On - * success, @pids must be freed by the caller. - * @nr_pids is set to the number of entries contained by the @pids array. + * enabled is set to whether the PID tracker is enabled. + * pids is set to an allocated array of PIDs currently tracked. On + * success, pids must be freed by the caller. + * nr_pids is set to the number of entries contained by the pids array. * * Returns 0 on success, else a negative LTTng error code. */ int lttng_list_tracker_pids(struct lttng_handle *handle, int *_enabled, int32_t **_pids, size_t *_nr_pids) { - int ret, enabled = 1; + int ret; + int enabled = 1; struct lttcomm_session_msg lsm; size_t nr_pids; int32_t *pids;