X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Flttng-ctl%2Flttng-ctl.c;h=48d7f8890c9b0184f1e08299a7122b9211fde689;hb=a03e83c35e9b1534952a57d64bab6beb728a990e;hp=a1e10f25e82176393f92206c2779d09355c063e6;hpb=f515d31854282e73a64760cbf942907ea0dfe853;p=lttng-tools.git diff --git a/src/lib/lttng-ctl/lttng-ctl.c b/src/lib/lttng-ctl/lttng-ctl.c index a1e10f25e..48d7f8890 100644 --- a/src/lib/lttng-ctl/lttng-ctl.c +++ b/src/lib/lttng-ctl/lttng-ctl.c @@ -1659,6 +1659,26 @@ int lttng_create_session(const char *name, const char *url) return ret; } +/* + * Clear the session + */ +int lttng_clear_session(const char *session_name) +{ + struct lttcomm_session_msg lsm; + + if (session_name == NULL) { + return -LTTNG_ERR_INVALID; + } + + memset(&lsm, 0, sizeof(lsm)); + + lsm.cmd_type = LTTNG_CLEAR_SESSION; + lttng_ctl_copy_string(lsm.session.name, session_name, + sizeof(lsm.session.name)); + + return lttng_ctl_ask_sessiond(&lsm, NULL); +} + /* * Destroy session using name. * Returns size of returned session payload data or a negative error code. @@ -2558,7 +2578,7 @@ int lttng_list_tracker_pids(struct lttng_handle *handle, int enabled = 1; struct lttcomm_session_msg lsm; size_t nr_pids; - int32_t *pids; + int32_t *pids = NULL; if (handle == NULL) { return -LTTNG_ERR_INVALID; @@ -2575,6 +2595,9 @@ int lttng_list_tracker_pids(struct lttng_handle *handle, return ret; } nr_pids = ret / sizeof(int32_t); + if (nr_pids > 0 && !pids) { + return -LTTNG_ERR_UNK; + } if (nr_pids == 1 && pids[0] == -1) { free(pids); pids = NULL;