X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fstop.cpp;h=ed235bc2989c2c72feb46b31417cacf4e4a4fc4f;hb=5b915816f16e7cb3134dd7279abad79b31c2486c;hp=ec7da898c4b28c13a71cdbcd1038e125d4ff5504;hpb=21cf9b6b1843774306a76f4dccddddd706b64f79;p=lttng-tools.git diff --git a/src/bin/lttng/commands/stop.cpp b/src/bin/lttng/commands/stop.cpp index ec7da898c..ed235bc29 100644 --- a/src/bin/lttng/commands/stop.cpp +++ b/src/bin/lttng/commands/stop.cpp @@ -14,12 +14,11 @@ #include #include -#include -#include +#include +#include -#include "../command.h" +#include "../command.hpp" -static char *opt_session_name; static int opt_no_wait; static struct mi_writer *writer; @@ -81,19 +80,23 @@ end: /* * Start tracing for all trace of the session. */ -static int stop_tracing(void) +static int stop_tracing(const char *arg_session_name) { int ret; char *session_name; - if (opt_session_name == NULL) { + if (arg_session_name == NULL) { session_name = get_session_name(); + } else { + session_name = strdup(arg_session_name); if (session_name == NULL) { - ret = CMD_ERROR; - goto error; + PERROR("Failed to copy session name"); } - } else { - session_name = opt_session_name; + } + + if (session_name == NULL) { + ret = CMD_ERROR; + goto error; } ret = lttng_stop_tracing_no_wait(session_name); @@ -144,9 +147,7 @@ static int stop_tracing(void) } free_name: - if (opt_session_name == NULL) { - free(session_name); - } + free(session_name); error: return ret; @@ -161,6 +162,7 @@ int cmd_stop(int argc, const char **argv) { int opt, ret = CMD_SUCCESS, command_ret = CMD_SUCCESS, success = 1; static poptContext pc; + const char *arg_session_name = NULL; const char *leftover = NULL; pc = poptGetContext(NULL, argc, argv, long_options, 0); @@ -216,7 +218,7 @@ int cmd_stop(int argc, const char **argv) } } - opt_session_name = (char*) poptGetArg(pc); + arg_session_name = poptGetArg(pc); leftover = poptGetArg(pc); if (leftover) { @@ -225,7 +227,7 @@ int cmd_stop(int argc, const char **argv) goto end; } - command_ret = stop_tracing(); + command_ret = stop_tracing(arg_session_name); if (command_ret) { success = 0; }