Version: 1
-Previous: ce3afe932826596a422497b2890e800786bb9f4a
+Previous: 3f737370b9ed3e442f9585e50a4f23e4302f65de
Head: 56e2b4566930fa7b05debec8b247e8dfe9df7ffe
Applied:
Unapplied:
waitall-buggy: c49c6b56c55385774065f5aa2704078e6ae0ceb8
rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de
- ip6-opt: 7e43a759255e9890d1e41f1edf71792836f53941
Hidden:
+++ /dev/null
-Bottom: d79d5464622c07a1ee7c42051fee5fca02c52207
-Top: 0c5a0c24885960bf61c5afe1b2ef070808c1f084
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-06-04 12:30:15 -0700
-
-rsocket: Return success for IPV6_V6ONLY option
-
-Java Netpipe calls setsockopt for IPV6_V6ONLY. Return success
-to work-around the lack of support. Problem was reported by
-Chet Murthy <chet@watson.ibm.com>.
-
-Note that real support for V6ONLY requires changes to the
-kernel rdma_cm.
-
-Signed-off-by: Sean Hefty <sean.hefty@intel.com>
-
-
----
-
-diff --git a/src/rsocket.c b/src/rsocket.c
-index c111797..8b1e930 100644
---- a/src/rsocket.c
-+++ b/src/rsocket.c
-@@ -156,6 +156,7 @@ struct rsocket {
- long fd_flags;
- uint64_t so_opts;
- uint64_t tcp_opts;
-+ uint64_t ipv6_opts;
- enum rs_state state;
- int cq_armed;
- int retries;
-@@ -1717,6 +1718,17 @@ int rsetsockopt(int socket, int level, int optname,
- break;
- }
- break;
-+ case IPPROTO_IPV6:
-+ opts = &rs->ipv6_opts;
-+ switch (optname) {
-+ case IPV6_V6ONLY:
-+ opt_on = *(int *) optval;
-+ ret = 0;
-+ break;
-+ default:
-+ break;
-+ }
-+ break;
- case SOL_RDMA:
- if (rs->state > rs_listening) {
- ret = ERR(EINVAL);
-@@ -1804,6 +1816,17 @@ int rgetsockopt(int socket, int level, int optname,
- break;
- }
- break;
-+ case IPPROTO_IPV6:
-+ switch (optname) {
-+ case IPV6_V6ONLY:
-+ *((int *) optval) = !!(rs->ipv6_opts & (1 << optname));
-+ *optlen = sizeof(int);
-+ break;
-+ default:
-+ ret = ENOTSUP;
-+ break;
-+ }
-+ break;
- case SOL_RDMA:
- switch (optname) {
- case RDMA_SQSIZE: