You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by dr...@apache.org on 2010/03/09 06:20:10 UTC

svn commit: r920683 - in /incubator/thrift/trunk/lib/cpp/src: server/TNonblockingServer.cpp transport/TServerSocket.cpp

Author: dreiss
Date: Tue Mar  9 05:20:10 2010
New Revision: 920683

URL: http://svn.apache.org/viewvc?rev=920683&view=rev
Log:
cpp: Disable IPV6_V6ONLY only if the socket is an AF_INET6 socket

Some systems may disable IPV6 completely.  Ensure that we only disable
IPV6_V6ONLY if the socket is AF_INET6

No longer see the warning:

Thrift: Wed Jul 22 18:08:36 2009 TServerSocket::listen() IPV6_V6ONLY Protocol not available

Modified:
    incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp
    incubator/thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp

Modified: incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp?rev=920683&r1=920682&r2=920683&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp (original)
+++ incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp Tue Mar  9 05:20:10 2010
@@ -651,9 +651,11 @@ void TNonblockingServer::listenSocket() 
   }
 
   #ifdef IPV6_V6ONLY
-  int zero = 0;
-  if (-1 == setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, &zero, sizeof(zero))) {
-    GlobalOutput("TServerSocket::listen() IPV6_V6ONLY");
+  if (res->ai_family == AF_INET6) {
+    int zero = 0;
+    if (-1 == setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, &zero, sizeof(zero))) {
+      GlobalOutput("TServerSocket::listen() IPV6_V6ONLY");
+    }
   }
   #endif // #ifdef IPV6_V6ONLY
 

Modified: incubator/thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp?rev=920683&r1=920682&r2=920683&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp (original)
+++ incubator/thrift/trunk/lib/cpp/src/transport/TServerSocket.cpp Tue Mar  9 05:20:10 2010
@@ -182,10 +182,12 @@ void TServerSocket::listen() {
   #endif // #ifdef TCP_DEFER_ACCEPT
 
   #ifdef IPV6_V6ONLY
-  int zero = 0;
-  if (-1 == setsockopt(serverSocket_, IPPROTO_IPV6, IPV6_V6ONLY,
-                        &zero, sizeof(zero))) {
-    GlobalOutput.perror("TServerSocket::listen() IPV6_V6ONLY ", errno);
+  if (res->ai_family == AF_INET6) {
+    int zero = 0;
+    if (-1 == setsockopt(serverSocket_, IPPROTO_IPV6, IPV6_V6ONLY, 
+          &zero, sizeof(zero))) {
+      GlobalOutput.perror("TServerSocket::listen() IPV6_V6ONLY ", errno);
+    }
   }
   #endif // #ifdef IPV6_V6ONLY