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

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920683 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/cpp/src/transport/TServerSocket.cpp b/lib/cpp/src/transport/TServerSocket.cpp
index 6b5bf05..2f14fd5 100644
--- a/lib/cpp/src/transport/TServerSocket.cpp
+++ b/lib/cpp/src/transport/TServerSocket.cpp
@@ -182,10 +182,12 @@
   #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