]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
refresh
authorSean Hefty <sean.hefty@intel.com>
Mon, 16 Jul 2012 21:28:42 +0000 (14:28 -0700)
committerSean Hefty <sean.hefty@intel.com>
Mon, 16 Jul 2012 21:28:42 +0000 (14:28 -0700)
meta
patches/refresh-temp [deleted file]
patches/transpose

diff --git a/meta b/meta
index d18f21ec3fa11022b506dc6ad7996c6db68923be..9d62a8ab04522b7dfc81948e4790c4d47e710f17 100644 (file)
--- a/meta
+++ b/meta
@@ -1,9 +1,8 @@
 Version: 1
-Previous: ef06e26aea2280970341600a38bff87f8edb088b
-Head: 736300c117d5dea95f293a7910a06732aae11dab
+Previous: 5a57996f5283d15d247a6f258410fc9d8846e4b4
+Head: 71e126e4a152d09c6270bb38696d5cc846d00cf5
 Applied:
-  transpose: 86a08269137ad38f2d34ab5b2b2131018986b931
-  refresh-temp: 736300c117d5dea95f293a7910a06732aae11dab
+  transpose: 71e126e4a152d09c6270bb38696d5cc846d00cf5
 Unapplied:
   fork: d62b389a7f30187f39e8c6ae709fbdbf8423e7e8
   waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
diff --git a/patches/refresh-temp b/patches/refresh-temp
deleted file mode 100644 (file)
index a89f92c..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-Bottom: 18cd5fab283e42099140977cad709ad19315ac7a
-Top:    11bc8abd7626b80e35f4275314327e7ddf07c950
-Author: Sean Hefty <sean.hefty@intel.com>
-Date:   2012-07-16 14:28:41 -0700
-
-Refresh of transpose
-
----
-
-diff --git a/src/preload.c b/src/preload.c
-index 69597e0..cc0d7eb 100644
---- a/src/preload.c
-+++ b/src/preload.c
-@@ -252,55 +252,6 @@ out:
- }
- /*
-- * Convert from an rsocket to a normal socket.  The new socket should have the
-- * same settings and bindings as the rsocket.  We currently only handle setting
-- * a few of the more common values.
-- */
--static int socket_fallback(int socket, int *fd)
--{
--      socklen_t len = 0;
--      int new_fd, param, ret;
--
--      ret = rgetsockname(*fd, NULL, &len);
--      if (ret)
--              return ret;
--
--      param = (len == sizeof(struct sockaddr_in6)) ? PF_INET6 : PF_INET;
--      new_fd = real_socket(param, SOCK_STREAM, IPPROTO_TCP);
--      if (new_fd < 0)
--              return new_fd;
--
--      ret = rfcntl(*fd, F_GETFL);
--      if (ret > 0)
--              ret = real_fcntl(new_fd, F_SETFL, ret);
--      if (ret)
--              goto err;
--
--      len = sizeof param;
--      ret = rgetsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, &param, &len);
--      if (param && !ret)
--              ret = real_setsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, &param, len);
--      if (ret)
--              goto err;
--
--      len = sizeof param;
--      ret = rgetsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, &param, &len);
--      if (param && !ret)
--              ret = real_setsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, &param, len);
--      if (ret)
--              goto err;
--
--      rclose(*fd);
--      fd_store(socket, new_fd, fd_normal);
--      *fd = new_fd;
--      return 0;
--
--err:
--      real_close(new_fd);
--      return ret;
--}
--
--/*
-  * Convert between an rsocket and a normal socket.  The new socket should have the
-  * same settings and bindings as the current socket.  We currently only handle
-  * setting a few of the more common values.
-@@ -308,8 +259,8 @@ err:
- static int
- transpose_socket(int index, int *fd, enum fd_type new_type,
-       int (*socket_new)(int domain, int type, int protocol),
--      int (*shutdown_old)(int socket, int how),
-       int (*close_old)(int socket),
-+      int (*close_new)(int socket),
-       int (*getsockname_old)(int socket, struct sockaddr *addr,
-                              socklen_t *addrlen),
-       int (*getsockopt_old)(int socket, int level, int optname,
-@@ -351,14 +302,13 @@ transpose_socket(int index, int *fd, enum fd_type new_type,
-       if (ret)
-               goto err;
--      shutdown_old(*fd, SHUT_RDWR);
-       close_old(*fd);
-       fd_store(socket, new_fd, new_type);
-       *fd = new_fd;
-       return 0;
- err:
--      real_close(new_fd);
-+      close_new(new_fd);
-       return ret;
- }
-@@ -413,7 +363,10 @@ int bind(int socket, const struct sockaddr *addr, socklen_t addrlen)
-               if (!sin->sin_port || ntohs(sin->sin_port) > 1024)
-                       return rbind(fd, addr, addrlen);
--              ret = socket_fallback(socket, &fd);
-+              ret = transpose_socket(socket, &fd, fd_normal, real_socket,
-+                                     rclose, real_close, rgetsockname,
-+                                     rgetsockopt, real_setsockopt,
-+                                     rfcntl, real_fcntl);
-               if (ret)
-                       return ret;
-       }
-@@ -463,7 +416,10 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
-                               return ret;
-               }
--              ret = socket_fallback(socket, &fd);
-+              ret = transpose_socket(socket, &fd, fd_normal, real_socket,
-+                                     rclose, real_close, rgetsockname,
-+                                     rgetsockopt, real_setsockopt,
-+                                     rfcntl, real_fcntl);
-               if (ret)
-                       return ret;
-       }
index b4c5a3feef4ee7ae5d024d301bd7c519f288f4d2..bea1048a5912ae5b2522b0963263535902eac595 100644 (file)
@@ -1,5 +1,5 @@
 Bottom: 7ec243f3149e9a1ff1d5183f18e30d2458e354d6
-Top:    18cd5fab283e42099140977cad709ad19315ac7a
+Top:    11bc8abd7626b80e35f4275314327e7ddf07c950
 Author: Sean Hefty <sean.hefty@intel.com>
 Date:   2012-07-16 14:17:58 -0700
 
@@ -17,22 +17,26 @@ Signed-off-by: Sean Hefty <sean.hefty@intel.com>
 ---
 
 diff --git a/src/preload.c b/src/preload.c
-index 2750b30..69597e0 100644
+index 2750b30..cc0d7eb 100644
 --- a/src/preload.c
 +++ b/src/preload.c
-@@ -301,6 +301,68 @@ err:
+@@ -252,51 +252,63 @@ out:
  }
  
  /*
+- * Convert from an rsocket to a normal socket.  The new socket should have the
+- * same settings and bindings as the rsocket.  We currently only handle setting
+- * a few of the more common values.
 + * Convert between an rsocket and a normal socket.  The new socket should have the
 + * same settings and bindings as the current socket.  We currently only handle
 + * setting a few of the more common values.
-+ */
+  */
+-static int socket_fallback(int socket, int *fd)
 +static int
 +transpose_socket(int index, int *fd, enum fd_type new_type,
 +      int (*socket_new)(int domain, int type, int protocol),
-+      int (*shutdown_old)(int socket, int how),
 +      int (*close_old)(int socket),
++      int (*close_new)(int socket),
 +      int (*getsockname_old)(int socket, struct sockaddr *addr,
 +                             socklen_t *addrlen),
 +      int (*getsockopt_old)(int socket, int level, int optname,
@@ -41,51 +45,81 @@ index 2750b30..69597e0 100644
 +                            const void *optval, socklen_t optlen),
 +      int (*fcntl_old)(int socket, int cmd, ... /* arg */),
 +      int (*fcntl_new)(int socket, int cmd, ... /* arg */))
-+{
-+      socklen_t len = 0;
-+      int new_fd, param, ret;
-+
+ {
+       socklen_t len = 0;
+       int new_fd, param, ret;
+-      ret = rgetsockname(*fd, NULL, &len);
 +      ret = getsockname_old(*fd, NULL, &len);
-+      if (ret)
-+              return ret;
-+
-+      param = (len == sizeof(struct sockaddr_in6)) ? PF_INET6 : PF_INET;
+       if (ret)
+               return ret;
+       param = (len == sizeof(struct sockaddr_in6)) ? PF_INET6 : PF_INET;
+-      new_fd = real_socket(param, SOCK_STREAM, IPPROTO_TCP);
 +      new_fd = socket_new(param, SOCK_STREAM, 0);
-+      if (new_fd < 0)
-+              return new_fd;
-+
+       if (new_fd < 0)
+               return new_fd;
+-      ret = rfcntl(*fd, F_GETFL);
 +      ret = fcntl_old(*fd, F_GETFL);
-+      if (ret > 0)
+       if (ret > 0)
+-              ret = real_fcntl(new_fd, F_SETFL, ret);
 +              ret = fcntl_new(new_fd, F_SETFL, ret);
-+      if (ret)
-+              goto err;
-+
-+      len = sizeof param;
+       if (ret)
+               goto err;
+       len = sizeof param;
+-      ret = rgetsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, &param, &len);
 +      ret = getsockopt_old(*fd, SOL_SOCKET, SO_REUSEADDR, &param, &len);
-+      if (param && !ret)
+       if (param && !ret)
+-              ret = real_setsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, &param, len);
 +              ret = setsockopt_new(new_fd, SOL_SOCKET, SO_REUSEADDR, &param, len);
-+      if (ret)
-+              goto err;
-+
-+      len = sizeof param;
+       if (ret)
+               goto err;
+       len = sizeof param;
+-      ret = rgetsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, &param, &len);
 +      ret = getsockopt_old(*fd, IPPROTO_TCP, TCP_NODELAY, &param, &len);
-+      if (param && !ret)
+       if (param && !ret)
+-              ret = real_setsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, &param, len);
 +              ret = setsockopt_new(new_fd, IPPROTO_TCP, TCP_NODELAY, &param, len);
-+      if (ret)
-+              goto err;
-+
-+      shutdown_old(*fd, SHUT_RDWR);
+       if (ret)
+               goto err;
+-      rclose(*fd);
+-      fd_store(socket, new_fd, fd_normal);
 +      close_old(*fd);
 +      fd_store(socket, new_fd, new_type);
-+      *fd = new_fd;
-+      return 0;
-+
-+err:
-+      real_close(new_fd);
-+      return ret;
-+}
-+
-+/*
-  * Use defaults on failure.
-  */
- void set_rsocket_options(int rsocket)
+       *fd = new_fd;
+       return 0;
+ err:
+-      real_close(new_fd);
++      close_new(new_fd);
+       return ret;
+ }
+@@ -351,7 +363,10 @@ int bind(int socket, const struct sockaddr *addr, socklen_t addrlen)
+               if (!sin->sin_port || ntohs(sin->sin_port) > 1024)
+                       return rbind(fd, addr, addrlen);
+-              ret = socket_fallback(socket, &fd);
++              ret = transpose_socket(socket, &fd, fd_normal, real_socket,
++                                     rclose, real_close, rgetsockname,
++                                     rgetsockopt, real_setsockopt,
++                                     rfcntl, real_fcntl);
+               if (ret)
+                       return ret;
+       }
+@@ -401,7 +416,10 @@ int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
+                               return ret;
+               }
+-              ret = socket_fallback(socket, &fd);
++              ret = transpose_socket(socket, &fd, fd_normal, real_socket,
++                                     rclose, real_close, rgetsockname,
++                                     rgetsockopt, real_setsockopt,
++                                     rfcntl, real_fcntl);
+               if (ret)
+                       return ret;
+       }