X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fstop.cpp;h=ed235bc2989c2c72feb46b31417cacf4e4a4fc4f;hb=5b915816f16e7cb3134dd7279abad79b31c2486c;hp=6107dc15808abd883c08c0de245e3a80ed2d18b3;hpb=3957512ed31ca945f8353d5812f317314c905640;p=lttng-tools.git diff --git a/src/bin/lttng/commands/stop.cpp b/src/bin/lttng/commands/stop.cpp index 6107dc158..ed235bc29 100644 --- a/src/bin/lttng/commands/stop.cpp +++ b/src/bin/lttng/commands/stop.cpp @@ -19,7 +19,6 @@ #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; }