X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=libust%2Flttng-ust-comm.c;h=d88c4afb2346c000dedd5a96c9fa5239f37bb265;hb=381c0f1ef474e0ae8a96b3753470ca4bda45c764;hp=c5a3064ae216f222771e7acd99199ea12a520085;hpb=4e2ee1f5ad0b837440f3b850e971f25db209cca1;p=lttng-ust.git diff --git a/libust/lttng-ust-comm.c b/libust/lttng-ust-comm.c index c5a3064a..d88c4afb 100644 --- a/libust/lttng-ust-comm.c +++ b/libust/lttng-ust-comm.c @@ -282,8 +282,33 @@ end: } else { lur.ret_code = LTTCOMM_SESSION_FAIL; } + if (lum->cmd == LTTNG_UST_STREAM) { + /* + * Special-case reply to send stream info. + * Use lum.u output. + */ + lur.u.stream.memory_map_size = lum->u.stream.memory_map_size; + } ret = send_reply(sock, &lur); + if (lum->cmd == LTTNG_UST_STREAM && ret >= 0) { + /* we also need to send the file descriptors. */ + ret = lttcomm_send_fds_unix_sock(sock, + &lum->u.stream.shm_fd, &lum->u.stream.shm_fd, + 1, sizeof(int)); + if (ret < 0) { + perror("send shm_fd"); + goto error; + } + ret = lttcomm_send_fds_unix_sock(sock, + &lum->u.stream.wait_fd, &lum->u.stream.wait_fd, + 1, sizeof(int)); + if (ret < 0) { + perror("send wait_fd"); + goto error; + } + } +error: ust_unlock(); return ret; }