Version: 1
-Previous: a2bd166d9ce881ab75aa1ca43a8fd3d72aa8269f
-Head: 186a9caab5e2bbfd189e5fb2679ce35e63cd40ce
+Previous: ca3219ad90c0c1648d9f3391de7c2cfde0f315ab
+Head: 7248e16b3a3fad512497f927df828c3c2b0bf6f8
Applied:
transpose: 84e0beee0d2d3c217cd9703b9e438d25856cacb6
fork: 186a9caab5e2bbfd189e5fb2679ce35e63cd40ce
+ refresh-temp: 7248e16b3a3fad512497f927df828c3c2b0bf6f8
Unapplied:
rstream-fork: 7410b462c4f733276a83dedda753dcd34677fb23
dbg: 93074ae941ec0afc77c41b9840058dd4a128b262
--- /dev/null
+Bottom: e06d8cda98db4e12dce26674115aa70458eae4d8
+Top: d4edc2731701b6ca6a94f9087e44dbb9f76ec25c
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-07-18 11:30:22 -0700
+
+Refresh of fork
+
+---
+
+diff --git a/src/preload.c b/src/preload.c
+index 7be40f6..56c6c7d 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;