projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: consumer recv command error path
[lttng-tools.git]
/
src
/
common
/
kernel-consumer
/
kernel-consumer.c
diff --git
a/src/common/kernel-consumer/kernel-consumer.c
b/src/common/kernel-consumer/kernel-consumer.c
index 4a7ba04516e442aae6b824d61923bffd1f652e1c..47463c6501eddb48c4963d99c15b3d3c510c035c 100644
(file)
--- a/
src/common/kernel-consumer/kernel-consumer.c
+++ b/
src/common/kernel-consumer/kernel-consumer.c
@@
-92,7
+92,7
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
ret = lttcomm_recv_unix_sock(sock, &msg, sizeof(msg));
if (ret != sizeof(msg)) {
ret = lttcomm_recv_unix_sock(sock, &msg, sizeof(msg));
if (ret != sizeof(msg)) {
- lttng_consumer_send_error(ctx, CONSUMERD_ERROR_RECV_CMD);
+ lttng_consumer_send_error(ctx,
LTTCOMM_
CONSUMERD_ERROR_RECV_CMD);
return ret;
}
if (msg.cmd_type == LTTNG_CONSUMER_STOP) {
return ret;
}
if (msg.cmd_type == LTTNG_CONSUMER_STOP) {
@@
-120,7
+120,7
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
msg.u.channel.mmap_len,
msg.u.channel.max_sb_size);
if (new_channel == NULL) {
msg.u.channel.mmap_len,
msg.u.channel.max_sb_size);
if (new_channel == NULL) {
- lttng_consumer_send_error(ctx, CONSUMERD_OUTFD_ERROR);
+ lttng_consumer_send_error(ctx,
LTTCOMM_
CONSUMERD_OUTFD_ERROR);
goto end_nosignal;
}
if (ctx->on_recv_channel != NULL) {
goto end_nosignal;
}
if (ctx->on_recv_channel != NULL) {
@@
-150,7
+150,7
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
/* Get stream file descriptor from socket */
ret = lttcomm_recv_fds_unix_sock(sock, &fd, 1);
if (ret != sizeof(fd)) {
/* Get stream file descriptor from socket */
ret = lttcomm_recv_fds_unix_sock(sock, &fd, 1);
if (ret != sizeof(fd)) {
- lttng_consumer_send_error(ctx, CONSUMERD_ERROR_RECV_FD);
+ lttng_consumer_send_error(ctx,
LTTCOMM_
CONSUMERD_ERROR_RECV_FD);
rcu_read_unlock();
return ret;
}
rcu_read_unlock();
return ret;
}
@@
-167,7
+167,7
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
msg.u.stream.net_index,
msg.u.stream.metadata_flag);
if (new_stream == NULL) {
msg.u.stream.net_index,
msg.u.stream.metadata_flag);
if (new_stream == NULL) {
- lttng_consumer_send_error(ctx, CONSUMERD_OUTFD_ERROR);
+ lttng_consumer_send_error(ctx,
LTTCOMM_
CONSUMERD_OUTFD_ERROR);
goto end_nosignal;
}
goto end_nosignal;
}
@@
-257,7
+257,12
@@
int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
} while (ret < 0 && errno == EINTR);
end_nosignal:
rcu_read_unlock();
} while (ret < 0 && errno == EINTR);
end_nosignal:
rcu_read_unlock();
- return 0;
+
+ /*
+ * Return 1 to indicate success since the 0 value can be a socket
+ * shutdown during the recv() or send() call.
+ */
+ return 1;
}
/*
}
/*
This page took
0.024006 seconds
and
4
git commands to generate.