X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Fkernel-consumer%2Fkernel-consumer.c;h=74c6de399af9f260264eac8a01894f4a1487c599;hb=3654ed19aa453f4be063784e215cab81441e8962;hp=246ae6b59dedc6182b1628aef8065a686959bbbc;hpb=f72bb42fe5fb36e43df18f9df6d0d389db699170;p=lttng-tools.git diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c index 246ae6b59..74c6de399 100644 --- a/src/common/kernel-consumer/kernel-consumer.c +++ b/src/common/kernel-consumer/kernel-consumer.c @@ -144,7 +144,8 @@ static int lttng_kconsumer_snapshot_channel( /* Splice is not supported yet for channel snapshot. */ if (channel->output != CONSUMER_CHANNEL_MMAP) { - ERR("Unsupported output %d", channel->output); + ERR("Unsupported output type for channel \"%s\": mmap output is required to record a snapshot", + channel->name); ret = -1; goto end; } @@ -236,7 +237,7 @@ static int lttng_kconsumer_snapshot_channel( produced_pos, nb_packets_per_stream, stream->max_sb_size); - while (consumed_pos < produced_pos) { + while ((long) (consumed_pos - produced_pos) < 0) { ssize_t read_len; unsigned long len, padded_len; @@ -1259,6 +1260,19 @@ int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, } break; } + case LTTNG_CONSUMER_INIT: + { + ret_code = lttng_consumer_init_command(ctx, + msg.u.init.sessiond_uuid); + + health_code_update(); + ret = consumer_send_status_msg(sock, ret_code); + if (ret < 0) { + /* Somehow, the session daemon is not responding anymore. */ + goto end_nosignal; + } + break; + } default: goto end_nosignal; }