SocketEngine Windows: If not dual stack, use IPv4 for AnyIPProtocol
authorMartin Petersson <Martin.Petersson@nokia.com>
Tue, 3 Jul 2012 08:46:36 +0000 (10:46 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 3 Jul 2012 12:39:27 +0000 (14:39 +0200)
If the Windows version doesn't support dual stack then we should bind
to IPv4. So we should change the socketProtocol to
QAbstractSocket::IPv4Protocol as well.

Change-Id: I7f9d0bdd861f82d720e347d3fa968198de720d1a
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
src/network/socket/qnativesocketengine_win.cpp

index 8b354a8..74983d2 100644 (file)
@@ -793,7 +793,10 @@ bool QNativeSocketEnginePrivate::nativeBind(const QHostAddress &a, quint16 port)
             ipv6only = ::setsockopt(socketDescriptor, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&ipv6only, sizeof(ipv6only) );
         else
 #endif
+        {
             address = QHostAddress(QHostAddress::AnyIPv4); //xp/WS2003 and earlier don't support dual stack, so bind to IPv4
+            socketProtocol = QAbstractSocket::IPv4Protocol;
+        }
         break;
     default:
         break;