Fix: error on no/multiple domain options
[lttng-tools.git] / src / bin / lttng / utils.c
index c518405cae2944c6fd3e6e997f024eed307ad0ff..9957b378162b897a8743c8897425da51d27e0cb7 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #define _GNU_SOURCE
+#define _LGPL_SOURCE
 #include <assert.h>
 #include <stdlib.h>
 #include <ctype.h>
@@ -39,13 +40,8 @@ static const char *str_jul = "JUL";
 static const char *str_log4j = "LOG4J";
 static const char *str_python = "Python";
 
-/*
- *  get_session_name
- *
- *  Return allocated string with the session name found in the config
- *  directory.
- */
-char *get_session_name(void)
+static
+char *_get_session_name(int quiet)
 {
        char *path, *session_name = NULL;
 
@@ -56,7 +52,8 @@ char *get_session_name(void)
        }
 
        /* Get session name from config */
-       session_name = config_read_session_name(path);
+       session_name = quiet ? config_read_session_name_quiet(path) :
+               config_read_session_name(path);
        if (session_name == NULL) {
                goto error;
        }
@@ -69,6 +66,28 @@ error:
        return NULL;
 }
 
+/*
+ *  get_session_name
+ *
+ *  Return allocated string with the session name found in the config
+ *  directory.
+ */
+char *get_session_name(void)
+{
+       return _get_session_name(0);
+}
+
+/*
+ *  get_session_name_quiet (no warnings/errors emitted)
+ *
+ *  Return allocated string with the session name found in the config
+ *  directory.
+ */
+char *get_session_name_quiet(void)
+{
+       return _get_session_name(1);
+}
+
 /*
  *  list_commands
  *
@@ -320,14 +339,14 @@ int spawn_relayd(const char *pathname, int port)
                if (errno == ENOENT) {
                        ERR("No relayd found. Use --relayd-path.");
                } else {
-                       perror("execlp");
+                       PERROR("execlp");
                }
                kill(getppid(), SIGTERM);       /* wake parent */
                exit(EXIT_FAILURE);
        } else if (pid > 0) {
                goto end;
        } else {
-               perror("fork");
+               PERROR("fork");
                ret = -1;
                goto end;
        }
@@ -348,7 +367,7 @@ int check_relayd(void)
 
        fd = socket(AF_INET, SOCK_STREAM, 0);
        if (fd < 0) {
-               perror("socket check relayd");
+               PERROR("socket check relayd");
                ret = -1;
                goto error_socket;
        }
@@ -357,7 +376,7 @@ int check_relayd(void)
        sin.sin_port = htons(DEFAULT_NETWORK_VIEWER_PORT);
        ret = inet_pton(sin.sin_family, "127.0.0.1", &sin.sin_addr);
        if (ret < 1) {
-               perror("inet_pton check relayd");
+               PERROR("inet_pton check relayd");
                ret = -1;
                goto error;
        }
@@ -377,8 +396,23 @@ int check_relayd(void)
 
 error:
        if (close(fd) < 0) {
-               perror("close relayd fd");
+               PERROR("close relayd fd");
        }
 error_socket:
        return ret;
 }
+
+int print_missing_or_multiple_domains(unsigned int sum)
+{
+       int ret = 0;
+
+       if (sum == 0) {
+               ERR("Please specify a domain (-k/-u/-j).");
+               ret = -1;
+       } else if (sum > 1) {
+               ERR("Multiple domains specified.");
+               ret = -1;
+       }
+
+       return ret;
+}
This page took 0.025498 seconds and 4 git commands to generate.