Fix: use utils_get_home_dir for anonymous trace chunk path
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 12 Aug 2019 21:30:45 +0000 (17:30 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 23 Aug 2019 22:32:00 +0000 (15:32 -0700)
The default behaviour of lttng_directory_handle_init will set
the current working directory if opt_output_path is null.

Instead we want to honour LTTNG_HOME/HOME.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-relayd/session.c

index 28e75f1dc1804c3f3e3740bca3a7a4e3e9fd9548..1359e9f4b455833e58b74ace6be4e45f616dc48c 100644 (file)
 
 #define _LGPL_SOURCE
 #include <common/common.h>
+#include <common/utils.h>
 #include <common/compat/uuid.h>
 #include <urcu/rculist.h>
 
-#include "lttng-relayd.h"
 #include "ctf-trace.h"
+#include "lttng-relayd.h"
 #include "session.h"
-#include "stream.h"
 #include "sessiond-trace-chunks.h"
+#include "stream.h"
 
 /* Global session id used in the session creation. */
 static uint64_t last_relay_session_id;
@@ -38,8 +39,20 @@ static int session_set_anonymous_chunk(struct relay_session *session)
        struct lttng_trace_chunk *chunk = NULL;
        enum lttng_trace_chunk_status status;
        struct lttng_directory_handle output_directory;
+       char *base_path = opt_output_path;
+
+       if (base_path == NULL) {
+               /* No output path defined */
+               base_path = utils_get_home_dir();
+               if (base_path == NULL) {
+                       ERR("Home path not found.\n \
+                                       Please specify an output path using -o, --output PATH");
+                       ret = -1;
+                       goto end;
+               }
+       }
 
-       ret = lttng_directory_handle_init(&output_directory, opt_output_path);
+       ret = lttng_directory_handle_init(&output_directory, base_path);
        if (ret) {
                goto end;
        }
This page took 0.033011 seconds and 4 git commands to generate.