Version: 1
-Previous: 04e41906c42dd641d607cd085978535577d1be30
-Head: dd504fd25eea576996cbc575b9ab1ba7b2359382
+Previous: 787fee5e12f2842af28701de8337ea72105750df
+Head: 49754c7df5f31b1de88c34a878b44131a4d5434c
Applied:
transpose: 84e0beee0d2d3c217cd9703b9e438d25856cacb6
- fork: 91cbcbd916d5835048d140aa97741c8b7eb97c71
- refresh-temp: dd504fd25eea576996cbc575b9ab1ba7b2359382
+ fork: 49754c7df5f31b1de88c34a878b44131a4d5434c
Unapplied:
waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de
Bottom: c0306f4628b14e75db3da212b4a99875f49be65f
-Top: 3e3c89beff00570aab96ab4c0bd6a397aaae83a4
+Top: 14944660e78363c6bab4cdc351003fe0f8f71bf4
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..00ca24e 100644
+index d2058e2..ed952d7 100644
--- a/src/preload.c
+++ b/src/preload.c
@@ -46,6 +46,8 @@
}
return real.connect(fd, addr, addrlen);
-@@ -754,3 +805,87 @@ int fcntl(int socket, int cmd, ... /* arg */)
+@@ -754,3 +805,86 @@ int fcntl(int socket, int cmd, ... /* arg */)
va_end(args);
return ret;
}
+ */
+pid_t fork(void)
+{
-+ struct sockaddr_storage sa;
+ struct sockaddr_in6 sin6;
+ pid_t pid;
+ sem_t *sem;
+ (fd_get(last_accept, &sfd) != fd_fork))
+ goto out;
+
-+ len = sizeof sa;
-+ ret = real.getsockname(sfd, (struct sockaddr *) &sa, &len);
++ len = sizeof sin6;
++ ret = real.getsockname(sfd, (struct sockaddr *) &sin6, &len);
+ if (ret)
+ goto out;
-+ sin6.sin6_family = sa.ss_family;
-+ sin6.sin6_port = ((struct sockaddr_in6 *) &sa)->sin6_port;
++ sin6.sin6_flowinfor = sin6.sin6_scope_id = 0;
++ memset(&sin6.sin6_addr, 0, sizeof sin6.sin6_addr);
+
+ sem = sem_open("/rsocket_fork", O_CREAT, 0644, 1);
+ if (sem == SEM_FAILED)
+ rsetsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, ¶m, sizeof param);
+
+ sem_wait(sem);
-+ ret = rbind(lfd, &sin6, sizeof sin6);
++ ret = rbind(lfd, (struct sockaddr *) &sin6, sizeof sin6);
+ if (ret)
+ goto lclose;
+
+++ /dev/null
-Bottom: 3e3c89beff00570aab96ab4c0bd6a397aaae83a4
-Top: 14944660e78363c6bab4cdc351003fe0f8f71bf4
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-07-17 12:45:52 -0700
-
-Refresh of fork
-
----
-
-diff --git a/src/preload.c b/src/preload.c
-index 00ca24e..ed952d7 100644
---- a/src/preload.c
-+++ b/src/preload.c
-@@ -819,7 +819,6 @@ int fcntl(int socket, int cmd, ... /* arg */)
- */
- pid_t fork(void)
- {
-- struct sockaddr_storage sa;
- struct sockaddr_in6 sin6;
- pid_t pid;
- sem_t *sem;
-@@ -833,12 +832,12 @@ pid_t fork(void)
- (fd_get(last_accept, &sfd) != fd_fork))
- goto out;
-
-- len = sizeof sa;
-- ret = real.getsockname(sfd, (struct sockaddr *) &sa, &len);
-+ len = sizeof sin6;
-+ ret = real.getsockname(sfd, (struct sockaddr *) &sin6, &len);
- if (ret)
- goto out;
-- sin6.sin6_family = sa.ss_family;
-- sin6.sin6_port = ((struct sockaddr_in6 *) &sa)->sin6_port;
-+ sin6.sin6_flowinfor = sin6.sin6_scope_id = 0;
-+ memset(&sin6.sin6_addr, 0, sizeof sin6.sin6_addr);
-
- sem = sem_open("/rsocket_fork", O_CREAT, 0644, 1);
- if (sem == SEM_FAILED)
-@@ -852,7 +851,7 @@ pid_t fork(void)
- rsetsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, ¶m, sizeof param);
-
- sem_wait(sem);
-- ret = rbind(lfd, &sin6, sizeof sin6);
-+ ret = rbind(lfd, (struct sockaddr *) &sin6, sizeof sin6);
- if (ret)
- goto lclose;