/*
- * Copyright (C) 2011 - David Goulet <david.goulet@polymtl.ca>
+ * Copyright (C) 2011 David Goulet <david.goulet@polymtl.ca>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License, version 2 only,
- * as published by the Free Software Foundation.
+ * SPDX-License-Identifier: GPL-2.0-only
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#define _LGPL_SOURCE
-#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <inttypes.h>
+#include <common/compat/errno.h>
#include <common/common.h>
#include <common/consumer/consumer.h>
#include <common/defaults.h>
uint64_t key, chan_reg_key;
char *pathname = NULL;
struct lttcomm_consumer_msg msg;
- struct ust_registry_channel *chan_reg;
+ struct ust_registry_channel *ust_reg_chan;
char shm_path[PATH_MAX] = "";
char root_shm_path[PATH_MAX] = "";
bool is_local_trace;
+ size_t consumer_path_offset = 0;
assert(ua_sess);
assert(ua_chan);
is_local_trace = consumer->net_seq_index == -1ULL;
/* Format the channel's path (relative to the current trace chunk). */
- pathname = setup_channel_trace_path(consumer, ua_sess->path);
+ pathname = setup_channel_trace_path(consumer, ua_sess->path,
+ &consumer_path_offset);
if (!pathname) {
ret = -1;
goto error;
chan_reg_key = ua_chan->key;
}
- if (ua_chan->attr.type == LTTNG_UST_CHAN_METADATA) {
+ if (ua_chan->attr.type == LTTNG_UST_ABI_CHAN_METADATA) {
chan_id = -1U;
/*
* Metadata channels shm_path (buffers) are handled within
* those buffer files.
*/
} else {
- chan_reg = ust_registry_channel_find(registry, chan_reg_key);
- assert(chan_reg);
- chan_id = chan_reg->chan_id;
+ ust_reg_chan = ust_registry_channel_find(registry, chan_reg_key);
+ assert(ust_reg_chan);
+ chan_id = ust_reg_chan->chan_id;
if (ua_sess->shm_path[0]) {
strncpy(shm_path, ua_sess->shm_path, sizeof(shm_path));
shm_path[sizeof(shm_path) - 1] = '\0';
}
switch (ua_chan->attr.output) {
- case LTTNG_UST_MMAP:
+ case LTTNG_UST_ABI_MMAP:
default:
output = LTTNG_EVENT_MMAP;
break;
ua_chan->attr.switch_timer_interval,
ua_chan->attr.read_timer_interval,
ua_sess->live_timer_interval,
+ ua_sess->live_timer_interval != 0,
ua_chan->monitor_timer_interval,
output,
(int) ua_chan->attr.type,
ua_sess->tracing_id,
- pathname,
+ &pathname[consumer_path_offset],
ua_chan->name,
consumer->net_seq_index,
ua_chan->key,
ua_chan->tracefile_count,
ua_sess->id,
ua_sess->output_traces,
- ua_sess->real_credentials.uid,
+ lttng_credentials_get_uid(&ua_sess->real_credentials),
ua_chan->attr.blocking_timeout,
root_shm_path, shm_path,
trace_chunk,