X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=ltt-sessiond%2Fmain.c;h=3195e3c191160351fbade811d482cfaa6a7603c1;hp=380aa7d9c95e5cb40c9df1f6b27ee98f00587df0;hb=d7b91b3c1f59d4369b1a8f8c2641a1f1c5d80e23;hpb=d063d7094016bcc1f2405651f59530f502bc83e6 diff --git a/ltt-sessiond/main.c b/ltt-sessiond/main.c index 380aa7d9c..3195e3c19 100644 --- a/ltt-sessiond/main.c +++ b/ltt-sessiond/main.c @@ -150,7 +150,7 @@ static void cleanup() { int ret; char *cmd; - struct ltt_session *sess; + struct ltt_session *sess, *stmp; DBG("Cleaning up"); @@ -184,7 +184,7 @@ static void cleanup() pthread_mutex_destroy(&session_list_ptr->lock); /* Cleanup ALL session */ - cds_list_for_each_entry(sess, &session_list_ptr->head, list) { + cds_list_for_each_entry_safe(sess, stmp, &session_list_ptr->head, list) { teardown_kernel_session(sess); // TODO complete session cleanup (including UST) } @@ -1113,7 +1113,7 @@ static int notify_kernel_pollfd(void) /* * Allocate a channel structure and fill it. */ -static struct lttng_channel *init_default_channel(void) +static struct lttng_channel *init_default_channel(char *name) { struct lttng_channel *chan; @@ -1123,7 +1123,7 @@ static struct lttng_channel *init_default_channel(void) goto error; } - if (snprintf(chan->name, NAME_MAX, DEFAULT_CHANNEL_NAME) < 0) { + if (snprintf(chan->name, NAME_MAX, "%s", name) < 0) { perror("snprintf defautl channel name"); return NULL; } @@ -1318,7 +1318,8 @@ static int process_client_msg(struct command_ctx *cmd_ctx) if (no_event) { ret = kernel_add_channel_context(chan, &ctx); if (ret < 0) { - continue; + ret = LTTCOMM_KERN_CONTEXT_FAIL; + goto error; } } else { event = get_kernel_event_by_name(cmd_ctx->lsm->u.context.event_name, chan); @@ -1526,9 +1527,9 @@ static int process_client_msg(struct command_ctx *cmd_ctx) kchan = get_kernel_channel_by_name(channel_name, cmd_ctx->session->kernel_session); if (kchan == NULL) { - DBG("Creating default channel"); + DBG("Channel not found. Creating channel %s", channel_name); - chan = init_default_channel(); + chan = init_default_channel(channel_name); if (chan == NULL) { ret = LTTCOMM_FATAL; goto error; @@ -1590,9 +1591,9 @@ static int process_client_msg(struct command_ctx *cmd_ctx) kchan = get_kernel_channel_by_name(channel_name, cmd_ctx->session->kernel_session); if (kchan == NULL) { - DBG("Creating default channel"); + DBG("Channel not found. Creating channel %s", channel_name); - chan = init_default_channel(); + chan = init_default_channel(channel_name); if (chan == NULL) { ret = LTTCOMM_FATAL; goto error;