#include "../command.h"
#include "../utils.h"
+#include <common/sessiond-comm/sessiond-comm.h>
+
static char *opt_output_path;
static char *opt_session_name;
/* Auto output path */
if (opt_output_path == NULL) {
- alloc_path = strdup(config_get_default_path());
+ alloc_path = config_get_default_path();
if (alloc_path == NULL) {
- ERR("Home path not found.\n \
+ ERR("HOME path not found.\n \
Please specify an output path using -o, --output PATH");
ret = CMD_FATAL;
goto error;
}
+ alloc_path = strdup(alloc_path);
if (have_name) {
ret = asprintf(&traces_path, "%s/" DEFAULT_TRACE_DIR_NAME
goto error;
}
} else {
- traces_path = opt_output_path;
+ traces_path = expand_full_path(opt_output_path);
+ if (traces_path == NULL) {
+ ret = CMD_ERROR;
+ goto error;
+ }
}
ret = lttng_create_session(session_name, traces_path);
if (ret < 0) {
/* Don't set ret so lttng can interpret the sessiond error. */
+ switch (-ret) {
+ case LTTCOMM_EXIST_SESS:
+ WARN("Session %s already exists", session_name);
+ break;
+ }
goto error;
}