#include <common/defaults.h>
#include <common/error.h>
#include <common/config/config.h>
-#include <common/config/config-session-internal.h>
#include <common/utils.h>
#include <common/runas.h>
#include <lttng/save-internal.h>
goto end;
}
- if (ctx->ctx == LTTNG_KERNEL_CONTEXT_PERF_COUNTER) {
+ if (ctx->ctx == LTTNG_KERNEL_CONTEXT_PERF_CPU_COUNTER) {
ret = config_writer_open_element(writer, config_element_perf);
if (ret) {
ret = LTTNG_ERR_SAVE_IO_FAIL;
ret = !output->dst.net.control_isset ?
LTTNG_ERR_URL_CTRL_MISS :
LTTNG_ERR_URL_DATA_MISS;
+ free(uri);
goto end;
}
struct lttng_save_session_attr *attr, lttng_sock_cred *creds)
{
int ret, fd;
+ unsigned int file_opened = 0; /* Indicate if the file has been opened */
char config_file_path[PATH_MAX];
size_t len;
struct config_writer *writer = NULL;
assert(creds);
session_name_len = strlen(session->name);
+ memset(config_file_path, 0, sizeof(config_file_path));
if (!session_access_ok(session,
LTTNG_SOCK_GET_UID_CRED(creds),
provided_path = lttng_save_session_attr_get_output_url(attr);
if (provided_path) {
+ DBG3("Save session in provided path %s", provided_path);
len = strlen(provided_path);
if (len >= sizeof(config_file_path)) {
ret = LTTNG_ERR_SET_URL;
strncpy(config_file_path + len, session->name, session_name_len);
len += session_name_len;
strcpy(config_file_path + len, DEFAULT_SESSION_CONFIG_FILE_EXTENSION);
+ len += sizeof(DEFAULT_SESSION_CONFIG_FILE_EXTENSION);
+ config_file_path[len] = '\0';
if (!access(config_file_path, F_OK) && !attr->overwrite) {
- /* A file with the same name already exists, skip */
+ /* File exists, notify the user since the overwrite flag is off. */
+ ret = LTTNG_ERR_SAVE_FILE_EXIST;
goto end;
}
ret = LTTNG_ERR_SAVE_IO_FAIL;
goto end;
}
+ file_opened = 1;
writer = config_writer_create(fd);
if (!writer) {
}
ret = config_writer_write_element_bool(writer, config_element_started,
- session->enabled);
+ session->active);
if (ret) {
ret = LTTNG_ERR_SAVE_IO_FAIL;
goto end;
}
if (ret) {
/* Delete file in case of error */
- if (unlink(config_file_path)) {
+ if (file_opened && unlink(config_file_path)) {
PERROR("Unlinking XML session configuration.");
}
}