From 7248e16b3a3fad512497f927df828c3c2b0bf6f8 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Wed, 18 Jul 2012 11:30:22 -0700 Subject: [PATCH] Refresh of fork --- src/preload.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/preload.c b/src/preload.c index 7be40f63..56c6c7d0 100644 --- a/src/preload.c +++ b/src/preload.c @@ -465,11 +465,15 @@ static int connect_fork(int socket, const struct sockaddr *addr, socklen_t addrl { int fd, ret; uint32_t msg; + long flags; fd = fd_getd(socket); + flags = real.fcntl(fd, F_GETFD); + real.fcntl(fd, F_SETFD, 0); ret = real.connect(fd, addr, addrlen); - if (ret) + if (ret) { return ret; + } ret = real.recv(fd, &msg, sizeof msg, MSG_PEEK); if ((ret != sizeof msg) || msg) { @@ -477,6 +481,7 @@ static int connect_fork(int socket, const struct sockaddr *addr, socklen_t addrl return 0; } + real.fcntl(fd, F_SETFD, flags); ret = transpose_socket(socket, fd_rsocket); if (ret < 0) return ret; -- 2.45.2