ret = sprintf(name, STREAM_NAME_PREFIX "%" PRIu64, stream_iter->viewer_stream_id);
assert(ret > 0);
strcpy(stream_iter->name, name);
- private_port = bt_private_component_source_add_output_private_port(
- lttng_live->private_component, name, stream_iter);
- if (!private_port) {
+ ret = bt_private_component_source_add_output_private_port(
+ lttng_live->private_component, name, stream_iter,
+ &private_port);
+ if (ret) {
return -1;
}
BT_LOGI("Added port %s", name);
BT_PUT(component);
if (nr_ports == 1) {
assert(!lttng_live->no_stream_port);
- lttng_live->no_stream_port =
- bt_private_component_source_add_output_private_port(lttng_live->private_component,
- "no-stream", lttng_live->no_stream_iter);
- if (!lttng_live->no_stream_port) {
+ ret = bt_private_component_source_add_output_private_port(lttng_live->private_component,
+ "no-stream", lttng_live->no_stream_iter,
+ <tng_live->no_stream_port);
+ if (ret) {
return -1;
}
lttng_live->no_stream_iter->port = lttng_live->no_stream_port;
}
BT_HIDDEN
-int lttng_live_add_session(struct lttng_live_component *lttng_live, uint64_t session_id)
+int lttng_live_add_session(struct lttng_live_component *lttng_live,
+ uint64_t session_id, const char *hostname,
+ const char *session_name)
{
int ret = 0;
struct lttng_live_session *s;
BT_INIT_LIST_HEAD(&s->traces);
s->lttng_live = lttng_live;
s->new_streams_needed = true;
+ s->hostname = g_string_new(hostname);
+ s->session_name = g_string_new(session_name);
- BT_LOGI("Reading from session %" PRIu64, s->id);
+ BT_LOGI("Reading from session: %" PRIu64 " hostname: %s session_name: %s",
+ s->id, hostname, session_name);
bt_list_add(&s->node, <tng_live->sessions);
goto end;
error:
lttng_live_close_trace_streams(trace);
}
bt_list_del(&session->node);
+ if (session->hostname) {
+ g_string_free(session->hostname, TRUE);
+ }
+ if (session->session_name) {
+ g_string_free(session->session_name, TRUE);
+ }
g_free(session);
}
lttng_live->no_stream_iter = g_new0(struct lttng_live_no_stream_iterator, 1);
lttng_live->no_stream_iter->p.type = LIVE_STREAM_TYPE_NO_STREAM;
lttng_live->no_stream_iter->lttng_live = lttng_live;
-
- lttng_live->no_stream_port =
- bt_private_component_source_add_output_private_port(
+ ret = bt_private_component_source_add_output_private_port(
lttng_live->private_component, "no-stream",
- lttng_live->no_stream_iter);
+ lttng_live->no_stream_iter,
+ <tng_live->no_stream_port);
+ if (ret != BT_COMPONENT_STATUS_OK) {
+ goto end;
+ }
+
lttng_live->no_stream_iter->port = lttng_live->no_stream_port;
ret = bt_private_component_set_user_data(private_component, lttng_live);