Version: 1
-Previous: ca3219ad90c0c1648d9f3391de7c2cfde0f315ab
-Head: 7248e16b3a3fad512497f927df828c3c2b0bf6f8
+Previous: 4899bc2857008a2960fdf0a0a5b9d7d5ddfeeb5c
+Head: d5c12aeec51e502abb9e152e2722a7ecfc0c0909
Applied:
transpose: 84e0beee0d2d3c217cd9703b9e438d25856cacb6
- fork: 186a9caab5e2bbfd189e5fb2679ce35e63cd40ce
- refresh-temp: 7248e16b3a3fad512497f927df828c3c2b0bf6f8
+ fork: d5c12aeec51e502abb9e152e2722a7ecfc0c0909
Unapplied:
rstream-fork: 7410b462c4f733276a83dedda753dcd34677fb23
dbg: 93074ae941ec0afc77c41b9840058dd4a128b262
Bottom: c0306f4628b14e75db3da212b4a99875f49be65f
-Top: e06d8cda98db4e12dce26674115aa70458eae4d8
+Top: d4edc2731701b6ca6a94f9087e44dbb9f76ec25c
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2012-07-13 15:25:53 -0700
---
diff --git a/src/preload.c b/src/preload.c
-index d2058e2..7be40f6 100644
+index d2058e2..56c6c7d 100644
--- a/src/preload.c
+++ b/src/preload.c
@@ -46,6 +46,8 @@
return index;
}
fd_close(index, &ret);
-@@ -418,31 +437,63 @@ int listen(int socket, int backlog)
+@@ -418,31 +437,68 @@ int listen(int socket, int backlog)
int accept(int socket, struct sockaddr *addr, socklen_t *addrlen)
{
int fd, index, ret;
+{
+ 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) {
+ return 0;
+ }
+
++ real.fcntl(fd, F_SETFD, flags);
+ ret = transpose_socket(socket, fd_rsocket);
+ if (ret < 0)
+ return ret;
sin = (struct sockaddr_in *) addr;
if (ntohs(sin->sin_port) > 1024) {
ret = rconnect(fd, addr, addrlen);
-@@ -456,6 +507,9 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
+@@ -456,6 +512,9 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
rclose(fd);
fd = ret;
}
return real.connect(fd, addr, addrlen);
-@@ -754,3 +808,86 @@ int fcntl(int socket, int cmd, ... /* arg */)
+@@ -754,3 +813,86 @@ int fcntl(int socket, int cmd, ... /* arg */)
va_end(args);
return ret;
}
+++ /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;