Clean-up: replace uses of `int enabled` with boolean flags
[lttng-tools.git] / src / bin / lttng / commands / disable_channels.cpp
index cf9f20bb6d3fd2a539651c6c08d6a09699ca68c5..2c006552c7da5a4342ac5f31e0328e58681f2892 100644 (file)
@@ -1,11 +1,17 @@
 /*
- * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
+ * Copyright (C) 2011 EfficiOS Inc.
  *
  * SPDX-License-Identifier: GPL-2.0-only
  *
  */
 
 #define _LGPL_SOURCE
+#include "../command.hpp"
+
+#include <common/mi-lttng.hpp>
+
+#include <lttng/domain-internal.hpp>
+
 #include <popt.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <unistd.h>
 
-#include <common/mi-lttng.h>
-#include <lttng/domain-internal.h>
-
-#include "../command.h"
-
-static char *opt_channels;
 static int opt_kernel;
 static char *opt_session_name;
 static int opt_userspace;
@@ -27,7 +27,7 @@ static int opt_userspace;
 #ifdef LTTNG_EMBED_HELP
 static const char help_msg[] =
 #include <lttng-disable-channel.1.h>
-;
+       ;
 #endif
 
 enum {
@@ -41,16 +41,15 @@ static struct mi_writer *writer;
 
 static struct poptOption long_options[] = {
        /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
-       {"help",           'h', POPT_ARG_NONE, 0, OPT_HELP, 0, 0},
-       {"session",        's', POPT_ARG_STRING, &opt_session_name, 0, 0, 0},
-       {"kernel",         'k', POPT_ARG_VAL, &opt_kernel, 1, 0, 0},
-       {"userspace",      'u', POPT_ARG_NONE, 0, OPT_USERSPACE, 0, 0},
-       {"list-options", 0, POPT_ARG_NONE, NULL, OPT_LIST_OPTIONS, NULL, NULL},
-       {0, 0, 0, 0, 0, 0, 0}
+       { "help", 'h', POPT_ARG_NONE, nullptr, OPT_HELP, nullptr, nullptr },
+       { "session", 's', POPT_ARG_STRING, &opt_session_name, 0, nullptr, nullptr },
+       { "kernel", 'k', POPT_ARG_VAL, &opt_kernel, 1, nullptr, nullptr },
+       { "userspace", 'u', POPT_ARG_NONE, nullptr, OPT_USERSPACE, nullptr, nullptr },
+       { "list-options", 0, POPT_ARG_NONE, nullptr, OPT_LIST_OPTIONS, nullptr, nullptr },
+       { nullptr, 0, 0, nullptr, 0, nullptr, nullptr }
 };
 
-static int mi_partial_channel_print(char *channel_name, unsigned int enabled,
-               int success)
+static int mi_partial_channel_print(char *channel_name, unsigned int enabled, int success)
 {
        int ret;
 
@@ -64,22 +63,19 @@ static int mi_partial_channel_print(char *channel_name, unsigned int enabled,
        }
 
        /* Name */
-       ret = mi_lttng_writer_write_element_string(writer, config_element_name,
-                       channel_name);
+       ret = mi_lttng_writer_write_element_string(writer, config_element_name, channel_name);
        if (ret) {
                goto end;
        }
 
        /* 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;
        }
 
        /* Success ? */
-       ret = mi_lttng_writer_write_element_bool(writer,
-                       mi_lttng_element_success, success);
+       ret = mi_lttng_writer_write_element_bool(writer, mi_lttng_element_success, success);
        if (ret) {
                goto end;
        }
@@ -94,12 +90,11 @@ end:
 /*
  * Disabling channel using the lttng API.
  */
-static int disable_channels(char *session_name)
+static int disable_channels(char *session_name, char *channel_list)
 {
-       int ret = CMD_SUCCESS, warn = 0, success;
-
-       /* Normal case for disable channed is enabled = 0 */
-       unsigned int enabled = 0;
+       int ret = CMD_SUCCESS;
+       /* Normal case for disable channed is enabled = false */
+       bool warn = false, success, enabled = false;
        char *channel_name;
        struct lttng_domain dom;
 
@@ -116,7 +111,7 @@ static int disable_channels(char *session_name)
        }
 
        handle = lttng_create_handle(session_name, &dom);
-       if (handle == NULL) {
+       if (handle == nullptr) {
                ret = -1;
                goto error;
        }
@@ -129,19 +124,20 @@ static int disable_channels(char *session_name)
                        ret = CMD_ERROR;
                        goto error;
                }
-
        }
 
        /* Strip channel list */
-       channel_name = strtok(opt_channels, ",");
-       while (channel_name != NULL) {
+       channel_name = strtok(channel_list, ",");
+       while (channel_name != nullptr) {
                DBG("Disabling channel %s", channel_name);
 
                ret = lttng_disable_channel(handle, channel_name);
                if (ret < 0) {
-                       ERR("Channel %s: %s (session %s)", channel_name,
-                                       lttng_strerror(ret), session_name);
-                       warn = 1;
+                       ERR("Channel %s: %s (session %s)",
+                           channel_name,
+                           lttng_strerror(ret),
+                           session_name);
+                       warn = true;
 
                        /*
                         * Mi:
@@ -150,15 +146,16 @@ static int disable_channels(char *session_name)
                         * The client should look at the stderr stream
                         * for more informations.
                         */
-                       enabled = 1;
-                       success = 0;
+                       enabled = true;
+                       success = false;
 
                } else {
                        MSG("%s channel %s disabled for session %s",
-                                       lttng_domain_type_str(dom.type),
-                                       channel_name, session_name);
-                       enabled = 0;
-                       success = 1;
+                           lttng_domain_type_str(dom.type),
+                           channel_name,
+                           session_name);
+                       enabled = false;
+                       success = true;
                }
 
                /* Print the channel */
@@ -171,7 +168,7 @@ static int disable_channels(char *session_name)
                }
 
                /* Next channel */
-               channel_name = strtok(NULL, ",");
+               channel_name = strtok(nullptr, ",");
        }
 
        ret = CMD_SUCCESS;
@@ -206,10 +203,12 @@ int cmd_disable_channels(int argc, const char **argv)
 {
        int opt, ret = CMD_SUCCESS, command_ret = CMD_SUCCESS, success = 1;
        static poptContext pc;
-       char *session_name = NULL;
-       const char *leftover = NULL;
+       char *session_name = nullptr;
+       char *channel_list = nullptr;
+       const char *arg_channel_list = 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) {
@@ -229,16 +228,22 @@ int cmd_disable_channels(int argc, const char **argv)
                }
        }
 
-       ret = print_missing_or_multiple_domains(
-                       opt_kernel + opt_userspace, false);
+       ret = print_missing_or_multiple_domains(opt_kernel + opt_userspace, false);
        if (ret) {
                ret = CMD_ERROR;
                goto end;
        }
 
-       opt_channels = (char*) poptGetArg(pc);
-       if (opt_channels == NULL) {
-               ERR("Missing channel name(s).\n");
+       arg_channel_list = poptGetArg(pc);
+       if (arg_channel_list == nullptr) {
+               ERR("Missing channel name(s).");
+               ret = CMD_ERROR;
+               goto end;
+       }
+
+       channel_list = strdup(arg_channel_list);
+       if (channel_list == nullptr) {
+               PERROR("Failed to copy channel name");
                ret = CMD_ERROR;
                goto end;
        }
@@ -252,7 +257,7 @@ int cmd_disable_channels(int argc, const char **argv)
 
        if (!opt_session_name) {
                session_name = get_session_name();
-               if (session_name == NULL) {
+               if (session_name == nullptr) {
                        ret = CMD_ERROR;
                        goto end;
                }
@@ -270,22 +275,21 @@ int cmd_disable_channels(int argc, const char **argv)
 
                /* Open command element */
                ret = mi_lttng_writer_command_open(writer,
-                               mi_lttng_element_command_disable_channel);
+                                                  mi_lttng_element_command_disable_channel);
                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;
                }
        }
 
-       command_ret = disable_channels(session_name);
+       command_ret = disable_channels(session_name, channel_list);
        if (command_ret) {
                success = 0;
        }
@@ -300,8 +304,7 @@ int cmd_disable_channels(int argc, const char **argv)
                }
 
                /* Success ? */
-               ret = mi_lttng_writer_write_element_bool(writer,
-                               mi_lttng_element_success, success);
+               ret = mi_lttng_writer_write_element_bool(writer, mi_lttng_element_success, success);
                if (ret) {
                        ret = CMD_ERROR;
                        goto end;
@@ -326,6 +329,8 @@ end:
                free(session_name);
        }
 
+       free(channel_list);
+
        /* Overwrite ret if an error occurred in disable_channels */
        ret = command_ret ? command_ret : ret;
 
This page took 0.028964 seconds and 4 git commands to generate.