From: Mathieu Desnoyers Date: Tue, 6 Mar 2012 23:10:59 +0000 (-0500) Subject: Merge branch 'master' into dev X-Git-Tag: v2.1.0-rc1~97^2 X-Git-Url: https://git.lttng.org/?a=commitdiff_plain;h=49365f4b706194cafe75d8b759554bf9de743c1d;hp=-c;p=lttng-ust.git Merge branch 'master' into dev --- 49365f4b706194cafe75d8b759554bf9de743c1d diff --combined liblttng-ust-comm/lttng-ust-comm.c index 7e55cff5,21f48ed0..9baa4dc5 --- a/liblttng-ust-comm/lttng-ust-comm.c +++ b/liblttng-ust-comm/lttng-ust-comm.c @@@ -29,7 -29,6 +29,7 @@@ #include #include #include +#include #include @@@ -120,17 -119,12 +120,17 @@@ int ustcomm_connect_unix_sock(const cha * libust threads require the close-on-exec flag for all * resources so it does not leak file descriptors upon exec. */ - fd = socket(PF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); + fd = socket(PF_UNIX, SOCK_STREAM, 0); if (fd < 0) { perror("socket"); ret = fd; goto error; } + ret = fcntl(fd, F_SETFD, FD_CLOEXEC); + if (ret < 0) { + perror("fcntl"); + goto error_fcntl; + } memset(&sun, 0, sizeof(sun)); sun.sun_family = AF_UNIX; @@@ -150,7 -144,6 +150,7 @@@ return fd; error_connect: +error_fcntl: close(fd); error: return ret; @@@ -255,7 -248,9 +255,9 @@@ ssize_t ustcomm_recv_unix_sock(int sock msg.msg_iov = iov; msg.msg_iovlen = 1; - ret = recvmsg(sock, &msg, 0); + do { + ret = recvmsg(sock, &msg, 0); + } while (ret < 0 && errno == EINTR); if (ret < 0) { perror("recvmsg"); } @@@ -469,7 -464,10 +471,10 @@@ int ustcomm_recv_fd(int sock msg.msg_control = recv_fd; msg.msg_controllen = sizeof(recv_fd); - if ((ret = recvmsg(sock, &msg, 0)) < 0) { + do { + ret = recvmsg(sock, &msg, 0); + } while (ret < 0 && errno == EINTR); + if (ret < 0) { perror("recvmsg"); goto end; }