projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: lttng-live should accept 0 in addresses
[babeltrace.git]
/
formats
/
lttng-live
/
lttng-live-functions.c
diff --git
a/formats/lttng-live/lttng-live-functions.c
b/formats/lttng-live/lttng-live-functions.c
index 34612cf7b59f4e2fc5bca704a962d602b313fdc5..aee78cbf66012d204bd46cd1a34d11a545082311 100644
(file)
--- a/
formats/lttng-live/lttng-live-functions.c
+++ b/
formats/lttng-live/lttng-live-functions.c
@@
-110,6
+110,7
@@
int lttng_live_establish_connection(struct lttng_live_ctx *ctx)
cmd.data_size = sizeof(connect);
cmd.cmd_version = 0;
cmd.data_size = sizeof(connect);
cmd.cmd_version = 0;
+ connect.viewer_session_id = -1ULL; /* will be set on recv */
connect.major = htobe32(LTTNG_LIVE_MAJOR);
connect.minor = htobe32(LTTNG_LIVE_MINOR);
connect.type = htobe32(LTTNG_VIEWER_CLIENT_COMMAND);
connect.major = htobe32(LTTNG_LIVE_MAJOR);
connect.minor = htobe32(LTTNG_LIVE_MINOR);
connect.type = htobe32(LTTNG_VIEWER_CLIENT_COMMAND);
@@
-201,6
+202,8
@@
int lttng_live_list_sessions(struct lttng_live_ctx *ctx, const char *path)
goto error;
}
assert(ret_len == sizeof(lsession));
goto error;
}
assert(ret_len == sizeof(lsession));
+ lsession.hostname[LTTNG_VIEWER_HOST_NAME_MAX - 1] = '\0';
+ lsession.session_name[LTTNG_VIEWER_NAME_MAX - 1] = '\0';
fprintf(stdout, "%s/%" PRIu64 " : %s on host %s (timer = %u, "
"%u stream(s), %u client(s) connected)\n",
fprintf(stdout, "%s/%" PRIu64 " : %s on host %s (timer = %u, "
"%u stream(s), %u client(s) connected)\n",
@@
-227,11
+230,6
@@
int lttng_live_ctf_trace_assign(struct lttng_live_viewer_stream *stream,
(gpointer) ctf_trace_id);
if (!trace) {
trace = g_new0(struct lttng_live_ctf_trace, 1);
(gpointer) ctf_trace_id);
if (!trace) {
trace = g_new0(struct lttng_live_ctf_trace, 1);
- if (!trace) {
- ret = -1;
- fprintf(stderr, "[error] ctf_trace allocation\n");
- goto error;
- }
trace->ctf_trace_id = ctf_trace_id;
trace->streams = g_ptr_array_new();
g_hash_table_insert(stream->session->ctf_traces,
trace->ctf_trace_id = ctf_trace_id;
trace->streams = g_ptr_array_new();
g_hash_table_insert(stream->session->ctf_traces,
@@
-244,7
+242,6
@@
int lttng_live_ctf_trace_assign(struct lttng_live_viewer_stream *stream,
stream->ctf_trace = trace;
g_ptr_array_add(trace->streams, stream);
stream->ctf_trace = trace;
g_ptr_array_add(trace->streams, stream);
-error:
return ret;
}
return ret;
}
@@
-340,11
+337,6
@@
int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id)
ctx->session->stream_count);
ctx->session->streams = g_new0(struct lttng_live_viewer_stream,
ctx->session->stream_count);
ctx->session->stream_count);
ctx->session->streams = g_new0(struct lttng_live_viewer_stream,
ctx->session->stream_count);
- if (!ctx->session->streams) {
- ret = -1;
- goto error;
- }
-
for (i = 0; i < be32toh(rp.streams_count); i++) {
do {
ret_len = recv(ctx->control_sock, &stream, sizeof(stream), 0);
for (i = 0; i < be32toh(rp.streams_count); i++) {
do {
ret_len = recv(ctx->control_sock, &stream, sizeof(stream), 0);
@@
-355,6
+347,8
@@
int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id)
goto error;
}
assert(ret_len == sizeof(stream));
goto error;
}
assert(ret_len == sizeof(stream));
+ stream.path_name[LTTNG_VIEWER_PATH_MAX - 1] = '\0';
+ stream.channel_name[LTTNG_VIEWER_NAME_MAX - 1] = '\0';
printf_verbose(" stream %" PRIu64 " : %s/%s\n",
be64toh(stream.id), stream.path_name,
printf_verbose(" stream %" PRIu64 " : %s/%s\n",
be64toh(stream.id), stream.path_name,
@@
-369,9
+363,18
@@
int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id)
char *path;
path = strdup(LTTNG_METADATA_PATH_TEMPLATE);
char *path;
path = strdup(LTTNG_METADATA_PATH_TEMPLATE);
- path = mkdtemp(path);
+ if (!path) {
+ perror("strdup");
+ ret = -1;
+ goto error;
+ }
+ if (!mkdtemp(path)) {
+ perror("mkdtemp");
+ free(path);
+ ret = -1;
+ goto error;
+ }
ctx->session->streams[i].metadata_flag = 1;
ctx->session->streams[i].metadata_flag = 1;
- mkdir(path, S_IRWXU | S_IRWXG);
snprintf(ctx->session->streams[i].path,
sizeof(ctx->session->streams[i].path),
"%s/%s", path,
snprintf(ctx->session->streams[i].path,
sizeof(ctx->session->streams[i].path),
"%s/%s", path,
@@
-380,9
+383,12
@@
int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id)
O_WRONLY | O_CREAT | O_TRUNC,
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
if (ret < 0) {
O_WRONLY | O_CREAT | O_TRUNC,
S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
if (ret < 0) {
+ perror("open");
+ free(path);
goto error;
}
ctx->session->streams[i].fd = ret;
goto error;
}
ctx->session->streams[i].fd = ret;
+ free(path);
}
ret = lttng_live_ctf_trace_assign(&ctx->session->streams[i],
be64toh(stream.ctf_trace_id));
}
ret = lttng_live_ctf_trace_assign(&ctx->session->streams[i],
be64toh(stream.ctf_trace_id));
This page took
0.025564 seconds
and
4
git commands to generate.