]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
libibverbs/examples: fix IPv6 support
authorshefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 11 Mar 2009 21:37:05 +0000 (21:37 +0000)
committershefty <shefty@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Wed, 11 Mar 2009 21:37:05 +0000 (21:37 +0000)
Allow servers to accept connections from IPv4 and IPv6 clients.  Fix based on patch provided by Leonid.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2023 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/ulp/libibverbs/examples/rc_pingpong/rc_pingpong.c
trunk/ulp/libibverbs/examples/srq_pingpong/srq_pingpong.c
trunk/ulp/libibverbs/examples/uc_pingpong/uc_pingpong.c
trunk/ulp/libibverbs/examples/ud_pingpong/ud_pingpong.c

index 7281e8a877cfe5623178cbce227d14b95aaee1e6..5f9511aac82de81104c0b298c2da2a2236e418d8 100644 (file)
@@ -207,8 +207,9 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
        for (t = res; t; t = t->ai_next) {\r
                sockfd = socket(t->ai_family, t->ai_socktype, t->ai_protocol);\r
                if (sockfd != INVALID_SOCKET) {\r
+                       n = 0;\r
+                       setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY, (char *) &n, sizeof n);\r
                        n = 1;\r
-\r
                        setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &n, sizeof n);\r
 \r
                        if (!bind(sockfd, t->ai_addr, t->ai_addrlen))\r
index a789275d081b455dcf88d889b3a686970f99bfed..36446aa85fb94fb2f21208d2264cdc8940e14893 100644 (file)
@@ -248,9 +248,10 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
        for (t = res; t; t = t->ai_next) {\r
                sockfd = socket(t->ai_family, t->ai_socktype, t->ai_protocol);\r
                if (sockfd >= 0) {\r
+                       n = 0;\r
+                       setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY, (char *) &n, sizeof n);\r
                        n = 1;\r
-\r
-                       setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &n, sizeof n);\r
+                       setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &n, sizeof n);\r
 \r
                        if (!bind(sockfd, t->ai_addr, t->ai_addrlen))\r
                                break;\r
index b292c5fc00beb399a0247592544766d46cb273aa..d17559c1ab6936beb21e3e732fc94c9d45167ec8 100644 (file)
@@ -194,8 +194,9 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
        for (t = res; t; t = t->ai_next) {\r
                sockfd = socket(t->ai_family, t->ai_socktype, t->ai_protocol);\r
                if (sockfd != INVALID_SOCKET) {\r
+                       n = 0;\r
+                       setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY, (char *) &n, sizeof n);\r
                        n = 1;\r
-\r
                        setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &n, sizeof n);\r
 \r
                        if (!bind(sockfd, t->ai_addr, t->ai_addrlen))\r
index 831f7d0be28ed8e715e760f0f6120623674a6550..f3e73f7e9118de4209ead28f5ebab0e0d4cdc014 100644 (file)
@@ -195,8 +195,9 @@ static struct pingpong_dest *pp_server_exch_dest(struct pingpong_context *ctx,
        for (t = res; t; t = t->ai_next) {\r
                sockfd = socket(t->ai_family, t->ai_socktype, t->ai_protocol);\r
                if (sockfd != INVALID_SOCKET) {\r
+                       n = 0;\r
+                       setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY, (char *) &n, sizeof n);\r
                        n = 1;\r
-\r
                        setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (char *) &n, sizeof n);\r
 \r
                        if (!bind(sockfd, t->ai_addr, t->ai_addrlen))\r