From: Sean Hefty Date: Tue, 17 Jul 2012 19:45:52 +0000 (-0700) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=c67c832da0ad014f6cd914b65586a425ebff6a0e;p=~shefty%2Flibrdmacm.git refresh (create temporary patch) --- diff --git a/meta b/meta index ff39f615..ad28fd2a 100644 --- a/meta +++ b/meta @@ -1,9 +1,10 @@ Version: 1 -Previous: 04d16523394b39665de0813e3a3c72c9438fa754 -Head: 91cbcbd916d5835048d140aa97741c8b7eb97c71 +Previous: 04e41906c42dd641d607cd085978535577d1be30 +Head: dd504fd25eea576996cbc575b9ab1ba7b2359382 Applied: transpose: 84e0beee0d2d3c217cd9703b9e438d25856cacb6 fork: 91cbcbd916d5835048d140aa97741c8b7eb97c71 + refresh-temp: dd504fd25eea576996cbc575b9ab1ba7b2359382 Unapplied: waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8 rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..64e4d8f8 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,46 @@ +Bottom: 3e3c89beff00570aab96ab4c0bd6a397aaae83a4 +Top: 14944660e78363c6bab4cdc351003fe0f8f71bf4 +Author: Sean Hefty +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;