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