]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
refresh (create temporary patch)
authorSean Hefty <sean.hefty@intel.com>
Mon, 16 Jul 2012 22:58:30 +0000 (15:58 -0700)
committerSean Hefty <sean.hefty@intel.com>
Mon, 16 Jul 2012 22:58:30 +0000 (15:58 -0700)
meta
patches/refresh-temp [new file with mode: 0644]

diff --git a/meta b/meta
index 3ea4c37f5511b91e97e7edbb1bc523969a398401..97a651ef677d3eca1c5b746b5c9be766ce630b6c 100644 (file)
--- a/meta
+++ b/meta
@@ -1,8 +1,9 @@
 Version: 1
-Previous: 4999565e175b460c7eee1f50d26b74c3e37cb3a7
-Head: 28dd0f4ee0200748f8d4b27ea1c904402be9af4e
+Previous: 90822a092767ad4a8556c29b5acea1861057e67d
+Head: 6bdec2c7e5ddbe07e48a41e71f79dc51ebecc547
 Applied:
   transpose: 28dd0f4ee0200748f8d4b27ea1c904402be9af4e
+  refresh-temp: 6bdec2c7e5ddbe07e48a41e71f79dc51ebecc547
 Unapplied:
   fork: 454d730c27cbe7efcf9927edc0826f7f833fb95f
   waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
diff --git a/patches/refresh-temp b/patches/refresh-temp
new file mode 100644 (file)
index 0000000..c4c4616
--- /dev/null
@@ -0,0 +1,93 @@
+Bottom: 19f8849f48737cbf50102511ff14a78d39040f12
+Top:    e61a43e1e4e084e2b3c0a5b0070b81f378686b89
+Author: Sean Hefty <sean.hefty@intel.com>
+Date:   2012-07-16 15:58:30 -0700
+
+Refresh of transpose
+
+---
+
+diff --git a/src/preload.c b/src/preload.c
+index 14b09b8..3417223 100644
+--- a/src/preload.c
++++ b/src/preload.c
+@@ -285,58 +285,52 @@ transpose_socket(int index, int *fd, enum fd_type new_type)
+ {
+       socklen_t len = 0;
+       int new_fd, param, ret;
++      struct socket_calls *new, *old;
+-      ret = new_type == fd_rsocket ?
+-            real.getsockname(*fd, NULL, &len) : rgetsockname(*fd, NULL, &len);
++      if (new_type == fd_rsocket) {
++              new = &rs;
++              old = &real;
++      } else {
++              new = &real;
++              old = &rs;
++      }
++
++      ret = old->getsockname(*fd, NULL, &len);
+       if (ret)
+               return ret;
+       param = (len == sizeof(struct sockaddr_in6)) ? PF_INET6 : PF_INET;
+-      new_fd = new_type == fd_rsocket ?
+-               rsocket(param, SOCK_STREAM, 0) : socket(param, SOCK_STREAM, 0);
++      new_fd = new->socket(param, SOCK_STREAM, 0);
+       if (new_fd < 0)
+               return new_fd;
+-      ret = new_type == fd_rsocket ?
+-            real.fcntl(*fd, F_GETFL) : rcntl(*fd, F_GETFL);
+-      if (ret > 0) {
+-              ret = new_type == fd_rsocket ?
+-                    rfcntl(new_fd, F_SETFL, ret) : real.fcntl(new_fd, F_SETFL, ret);
+-      }
++      ret = old->fcntl(*fd, F_GETFL);
++      if (ret > 0)
++              ret = new->fcntl(new_fd, F_SETFL, ret);
+       if (ret)
+               goto err;
+       len = sizeof param;
+-      ret = new_type == fd_rsocket ?
+-            real.getsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, &param, &len) :
+-            rgetsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, &param, &len);
+-      if (param && !ret) {
+-              ret = new_type == fd_rsocket ?
+-                    rsetsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, &param, len) :
+-                    real.setsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, &param, len);
+-      }
++      ret = old->getsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, &param, &len);
++      if (param && !ret)
++              ret = new->setsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, &param, len);
+       if (ret)
+               goto err;
+       len = sizeof param;
+-      ret = new_type == fd_rsocket ?
+-            real.getsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, &param, &len) :
+-            rgetsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, &param, &len);
+-      if (param && !ret) {
+-              ret = new_type == fd_rsocket ?
+-                    rsetsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, &param, len) :
+-                    real.setsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, &param, len);
+-      }
++      ret = old->getsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, &param, &len);
++      if (param && !ret)
++              ret = new->setsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, &param, len);
+       if (ret)
+               goto err;
+-      new_type == fd_rsocket ? rclose(*fd) : real.close(*fd);
++      old->close(*fd);
+       fd_store(socket, new_fd, new_type);
+       *fd = new_fd;
+       return 0;
+ err:
+-      new_type == fd_rsocket ? real.close(new_fd) : rclose(new_fd);
++      new->close(new_fd);
+       return ret;
+ }