Merge branch 'master' into dev dev
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 6 Mar 2012 23:10:59 +0000 (18:10 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 6 Mar 2012 23:10:59 +0000 (18:10 -0500)
1  2 
liblttng-ust-comm/lttng-ust-comm.c

index 7e55cff556c6ced0314329401fdbe866480cf160,21f48ed00bf00cfa10351df04950817bb968ea25..9baa4dc50d3a3a48fb429c1ce4e7026e5a1f5ae5
@@@ -29,7 -29,6 +29,7 @@@
  #include <unistd.h>
  #include <assert.h>
  #include <errno.h>
 +#include <fcntl.h>
  
  #include <ust-comm.h>
  
@@@ -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;
        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;
        }
This page took 0.026827 seconds and 4 git commands to generate.