From: Sean Hefty Date: Mon, 16 Jul 2012 22:58:30 +0000 (-0700) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=98da70864cbb631fe73680bd0f2f311d76d5d190;p=~shefty%2Flibrdmacm.git refresh (create temporary patch) --- diff --git a/meta b/meta index 3ea4c37f..97a651ef 100644 --- 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 index 00000000..c4c4616f --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,93 @@ +Bottom: 19f8849f48737cbf50102511ff14a78d39040f12 +Top: e61a43e1e4e084e2b3c0a5b0070b81f378686b89 +Author: Sean Hefty +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 = ℜ ++ } else { ++ new = ℜ ++ 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, ¶m, &len) : +- rgetsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, ¶m, &len); +- if (param && !ret) { +- ret = new_type == fd_rsocket ? +- rsetsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, ¶m, len) : +- real.setsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, ¶m, len); +- } ++ ret = old->getsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, ¶m, &len); ++ if (param && !ret) ++ ret = new->setsockopt(new_fd, SOL_SOCKET, SO_REUSEADDR, ¶m, len); + if (ret) + goto err; + + len = sizeof param; +- ret = new_type == fd_rsocket ? +- real.getsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, ¶m, &len) : +- rgetsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, ¶m, &len); +- if (param && !ret) { +- ret = new_type == fd_rsocket ? +- rsetsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, ¶m, len) : +- real.setsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, ¶m, len); +- } ++ ret = old->getsockopt(*fd, IPPROTO_TCP, TCP_NODELAY, ¶m, &len); ++ if (param && !ret) ++ ret = new->setsockopt(new_fd, IPPROTO_TCP, TCP_NODELAY, ¶m, 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; + }