X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbin%2Flttng%2Fcommands%2Ftrack-untrack.c;h=bb3fc551b1e30c6b86e782004163a695e7bbda5b;hb=669d25b6d224253699e8521fbd7f50d3187b238e;hp=9ce850468d96db65fbe228e78e682b19bcd20cef;hpb=c51da6731061a34acbe9a63ef9ad593fa33b5847;p=lttng-tools.git diff --git a/src/bin/lttng/commands/track-untrack.c b/src/bin/lttng/commands/track-untrack.c index 9ce850468..bb3fc551b 100644 --- a/src/bin/lttng/commands/track-untrack.c +++ b/src/bin/lttng/commands/track-untrack.c @@ -208,14 +208,14 @@ enum cmd_error_code track_untrack_pid(enum cmd_type cmd_type, const char *cmd_st int nr_pids; struct lttng_domain dom; struct lttng_handle *handle = NULL; - int (*lib_func)(struct lttng_handle *handle, int pid); + int (*cmd_func)(struct lttng_handle *handle, int pid); switch (cmd_type) { case CMD_TRACK: - lib_func = lttng_track_pid; + cmd_func = lttng_track_pid; break; case CMD_UNTRACK: - lib_func = lttng_untrack_pid; + cmd_func = lttng_untrack_pid; break; default: ERR("Unknown command"); @@ -259,11 +259,30 @@ enum cmd_error_code track_untrack_pid(enum cmd_type cmd_type, const char *cmd_st for (i = 0; i < nr_pids; i++) { DBG("%s PID %d", cmd_str, pid_list[i]); - ret = lib_func(handle, pid_list[i]); + ret = cmd_func(handle, pid_list[i]); if (ret) { - success = 0; - retval = CMD_ERROR; + switch (-ret) { + case LTTNG_ERR_PID_TRACKED: + WARN("PID %i already tracked in session %s", + pid_list[i], session_name); + success = 1; + retval = CMD_SUCCESS; + break; + case LTTNG_ERR_PID_NOT_TRACKED: + WARN("PID %i not tracked in session %s", + pid_list[i], session_name); + success = 1; + retval = CMD_SUCCESS; + break; + default: + ERR("%s", lttng_strerror(ret)); + success = 0; + retval = CMD_ERROR; + break; + } } else { + MSG("PID %i %sed in session %s", + pid_list[i], cmd_str, session_name); success = 1; }