goto end_no_move;
}
-bool session_output_supports_trace_chunks(const struct ltt_session *session)
-{
- const struct consumer_output *output = session->kernel_session ?
- session->kernel_session->consumer :
- session->ust_session->consumer;
-
- if (output->type == CONSUMER_DST_LOCAL) {
- return true;
- } else {
- if (output->relay_major_version > 2) {
- return true;
- } else if (output->relay_major_version == 2 &&
- output->relay_minor_version >= 11) {
- return true;
- }
- }
- return false;
-}
-
struct lttng_trace_chunk *session_create_new_trace_chunk(
const struct ltt_session *session,
const struct consumer_output *consumer_output_override,
}
lttng_dynamic_array_reset(&session->destroy_notifiers);
free(session->last_archived_chunk_name);
+ free(session->base_path);
free(session);
if (session_published) {
/*
* Session list lock must be held by the caller.
*/
enum lttng_error_code session_create(const char *name, uid_t uid, gid_t gid,
- struct ltt_session **out_session)
+ const char *base_path, struct ltt_session **out_session)
{
int ret;
enum lttng_error_code ret_code;
DEFAULT_SESSION_NAME, i,
datetime);
}
+ new_session->name_contains_creation_time = true;
if (ret == -1 || ret >= sizeof(new_session->name)) {
/*
* Null-terminate in case the name is used
}
}
+ if (base_path) {
+ new_session->base_path = strdup(base_path);
+ if (!new_session->base_path) {
+ ERR("Failed to allocate base path of session \"%s\"",
+ name);
+ ret_code = LTTNG_ERR_SESSION_FAIL;
+ goto error;
+ }
+ }
+
new_session->uid = uid;
new_session->gid = gid;