Lttng-ctl: Expose sessiond cmd_clear_session command
[lttng-tools.git] / src / lib / lttng-ctl / lttng-ctl.c
index a1e10f25e82176393f92206c2779d09355c063e6..48d7f8890c9b0184f1e08299a7122b9211fde689 100644 (file)
@@ -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;
This page took 0.02487 seconds and 5 git commands to generate.