Version: 1
-Previous: 3c50300188929e24f89589e0951b6ff1f93defa3
-Head: 20acee2d0dd47800dbff3247882ff87589bc28df
+Previous: bbbeba0160f354c891350b6fcd82eaf2918000e6
+Head: 8329a0e0d8a8c59fd617824f9cf4c1b99c7a0156
Applied:
- fork: 85b4b437b6341c6acd121da7280c838adc79549a
- refresh-temp: 20acee2d0dd47800dbff3247882ff87589bc28df
+ fork: 8329a0e0d8a8c59fd617824f9cf4c1b99c7a0156
Unapplied:
waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de
Bottom: 7ec243f3149e9a1ff1d5183f18e30d2458e354d6
-Top: 7ec243f3149e9a1ff1d5183f18e30d2458e354d6
+Top: 38d73276ff33c48f81d135b5e5b1c3a0963111e6
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 2750b30..50430f7 100644
+--- a/src/preload.c
++++ b/src/preload.c
+@@ -92,10 +92,12 @@ static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
+ static int sq_size;
+ static int rq_size;
+ static int sq_inline;
++static int fork_support;
+
+ enum fd_type {
+ fd_normal,
+- fd_rsocket
++ fd_rsocket,
++ fd_fork
+ };
+
+ struct fd_info {
+@@ -207,6 +209,10 @@ void getenv_options(void)
+ var = getenv("RS_INLINE");
+ if (var)
+ sq_inline = atoi(var);
++
++ var = getenv("RS_FORK");
++ if (var)
++ fork_support = atoi(var);
+ }
+
+ static void init_preload(void)
+@@ -332,8 +338,16 @@ int socket(int domain, int type, int protocol)
+ ret = rsocket(domain, type, protocol);
+ recursive = 0;
+ if (ret >= 0) {
+- fd_store(index, ret, fd_rsocket);
+- set_rsocket_options(ret);
++ if (fork_support) {
++ rclose(ret);
++ ret = real_socket(domain, type, protocol);
++ if (ret < 0)
++ return ret;
++ fd_store(index, ret, fd_fork);
++ } else {
++ fd_store(index, ret, fd_rsocket);
++ set_rsocket_options(ret);
++ }
+ return index;
+ }
+ fd_close(index, &ret);
+++ /dev/null
-Bottom: 7ec243f3149e9a1ff1d5183f18e30d2458e354d6
-Top: 38d73276ff33c48f81d135b5e5b1c3a0963111e6
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-07-13 16:50:02 -0700
-
-Refresh of fork
-
----
-
-diff --git a/src/preload.c b/src/preload.c
-index 2750b30..50430f7 100644
---- a/src/preload.c
-+++ b/src/preload.c
-@@ -92,10 +92,12 @@ static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
- static int sq_size;
- static int rq_size;
- static int sq_inline;
-+static int fork_support;
-
- enum fd_type {
- fd_normal,
-- fd_rsocket
-+ fd_rsocket,
-+ fd_fork
- };
-
- struct fd_info {
-@@ -207,6 +209,10 @@ void getenv_options(void)
- var = getenv("RS_INLINE");
- if (var)
- sq_inline = atoi(var);
-+
-+ var = getenv("RS_FORK");
-+ if (var)
-+ fork_support = atoi(var);
- }
-
- static void init_preload(void)
-@@ -332,8 +338,16 @@ int socket(int domain, int type, int protocol)
- ret = rsocket(domain, type, protocol);
- recursive = 0;
- if (ret >= 0) {
-- fd_store(index, ret, fd_rsocket);
-- set_rsocket_options(ret);
-+ if (fork_support) {
-+ rclose(ret);
-+ ret = real_socket(domain, type, protocol);
-+ if (ret < 0)
-+ return ret;
-+ fd_store(index, ret, fd_fork);
-+ } else {
-+ fd_store(index, ret, fd_rsocket);
-+ set_rsocket_options(ret);
-+ }
- return index;
- }
- fd_close(index, &ret);