Clean-up: replace uses of `int found` as bool by `bool found`
[lttng-tools.git] / src / bin / lttng / commands / stop.cpp
index ec7da898c4b28c13a71cdbcd1038e125d4ff5504..a6d3d6711acc9ad083a1ccaa10348cddf0797a1b 100644 (file)
@@ -6,6 +6,11 @@
  */
 
 #define _LGPL_SOURCE
+#include "../command.hpp"
+
+#include <common/mi-lttng.hpp>
+#include <common/sessiond-comm/sessiond-comm.hpp>
+
 #include <popt.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <unistd.h>
 
-#include <common/sessiond-comm/sessiond-comm.h>
-#include <common/mi-lttng.h>
-
-#include "../command.h"
-
-static char *opt_session_name;
 static int opt_no_wait;
 static struct mi_writer *writer;
 
 #ifdef LTTNG_EMBED_HELP
 static const char help_msg[] =
 #include <lttng-stop.1.h>
-;
+       ;
 #endif
 
 enum {
@@ -36,10 +35,10 @@ enum {
 
 static struct poptOption long_options[] = {
        /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
-       {"help",      'h', POPT_ARG_NONE, 0, OPT_HELP, 0, 0},
-       {"list-options", 0, POPT_ARG_NONE, NULL, OPT_LIST_OPTIONS, NULL, NULL},
-       {"no-wait",   'n', POPT_ARG_VAL, &opt_no_wait, 1, 0, 0},
-       {0, 0, 0, 0, 0, 0, 0}
+       { "help", 'h', POPT_ARG_NONE, nullptr, OPT_HELP, nullptr, nullptr },
+       { "list-options", 0, POPT_ARG_NONE, nullptr, OPT_LIST_OPTIONS, nullptr, nullptr },
+       { "no-wait", 'n', POPT_ARG_VAL, &opt_no_wait, 1, nullptr, nullptr },
+       { nullptr, 0, 0, nullptr, 0, nullptr, nullptr }
 };
 
 /*
@@ -58,15 +57,13 @@ static int mi_print_session(char *session_name, int enabled)
        }
 
        /* Print session name element */
-       ret = mi_lttng_writer_write_element_string(writer, config_element_name,
-                       session_name);
+       ret = mi_lttng_writer_write_element_string(writer, config_element_name, session_name);
        if (ret) {
                goto end;
        }
 
        /* Is enabled ? */
-       ret = mi_lttng_writer_write_element_bool(writer, config_element_enabled,
-                       enabled);
+       ret = mi_lttng_writer_write_element_bool(writer, config_element_enabled, enabled);
        if (ret) {
                goto end;
        }
@@ -81,19 +78,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 == nullptr) {
                session_name = get_session_name();
-               if (session_name == NULL) {
-                       ret = CMD_ERROR;
-                       goto error;
-               }
        } else {
-               session_name = opt_session_name;
+               session_name = strdup(arg_session_name);
+               if (session_name == nullptr) {
+                       PERROR("Failed to copy session name");
+               }
+       }
+
+       if (session_name == nullptr) {
+               ret = CMD_ERROR;
+               goto error;
        }
 
        ret = lttng_stop_tracing_no_wait(session_name);
@@ -144,9 +145,7 @@ static int stop_tracing(void)
        }
 
 free_name:
-       if (opt_session_name == NULL) {
-               free(session_name);
-       }
+       free(session_name);
 
 error:
        return ret;
@@ -161,9 +160,10 @@ int cmd_stop(int argc, const char **argv)
 {
        int opt, ret = CMD_SUCCESS, command_ret = CMD_SUCCESS, success = 1;
        static poptContext pc;
-       const char *leftover = NULL;
+       const char *arg_session_name = nullptr;
+       const char *leftover = nullptr;
 
-       pc = poptGetContext(NULL, argc, argv, long_options, 0);
+       pc = poptGetContext(nullptr, argc, argv, long_options, 0);
        poptReadDefaultConfig(pc, 0);
 
        while ((opt = poptGetNextOpt(pc)) != -1) {
@@ -189,16 +189,14 @@ int cmd_stop(int argc, const char **argv)
                }
 
                /* Open command element */
-               ret = mi_lttng_writer_command_open(writer,
-                               mi_lttng_element_command_stop);
+               ret = mi_lttng_writer_command_open(writer, mi_lttng_element_command_stop);
                if (ret) {
                        ret = CMD_ERROR;
                        goto end;
                }
 
                /* Open output element */
-               ret = mi_lttng_writer_open_element(writer,
-                               mi_lttng_element_command_output);
+               ret = mi_lttng_writer_open_element(writer, mi_lttng_element_command_output);
                if (ret) {
                        ret = CMD_ERROR;
                        goto end;
@@ -208,15 +206,14 @@ int cmd_stop(int argc, const char **argv)
                 * Open sessions element
                 * For validation
                 */
-               ret = mi_lttng_writer_open_element(writer,
-                               config_element_sessions);
+               ret = mi_lttng_writer_open_element(writer, config_element_sessions);
                if (ret) {
                        ret = CMD_ERROR;
                        goto end;
                }
        }
 
-       opt_session_name = (char*) poptGetArg(pc);
+       arg_session_name = poptGetArg(pc);
 
        leftover = poptGetArg(pc);
        if (leftover) {
@@ -225,7 +222,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;
        }
@@ -240,8 +237,8 @@ int cmd_stop(int argc, const char **argv)
                }
 
                /* Success ? */
-               ret = mi_lttng_writer_write_element_bool(writer,
-                               mi_lttng_element_command_success, success);
+               ret = mi_lttng_writer_write_element_bool(
+                       writer, mi_lttng_element_command_success, success);
                if (ret) {
                        ret = CMD_ERROR;
                        goto end;
This page took 0.02714 seconds and 4 git commands to generate.