diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2014-12-23 12:52:59 -0200 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2014-12-24 14:42:05 +0100 |
commit | 68d8d27fadafdd28e87fb8090b4770d44f888803 (patch) | |
tree | a57158bc6c50e861f1a44fc9318bc3e5276000a2 /tests/auto/network | |
parent | 7a303ff55f3c9ee962506c5cf24b1fd432aa44fa (diff) |
Don't try to send broadcasts over IPv6
IPv6 has no such thing, so don't try to bind to an IPv6 address to send
broadcasts (even though that works) and it's a poor idea to bind to IPv6
to receive broadcasts. Moreover, skip any IPv6 network addresses
(broadcast() is invalid).
Change-Id: I2829b042c000158565adfd92db682f37d67dacae
Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'tests/auto/network')
-rw-r--r-- | tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp index b2338d2ce5..c2276a2126 100644 --- a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp +++ b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp @@ -282,8 +282,11 @@ void tst_QUdpSocket::broadcasting() foreach (QNetworkInterface iface, QNetworkInterface::allInterfaces()) { if ((iface.flags() & QNetworkInterface::CanBroadcast) && iface.flags() & QNetworkInterface::IsUp) { - for (int i=0;i<iface.addressEntries().count();i++) - broadcastAddresses.append(iface.addressEntries().at(i).broadcast()); + for (int i=0;i<iface.addressEntries().count();i++) { + QHostAddress broadcast = iface.addressEntries().at(i).broadcast(); + if (broadcast.protocol() == QAbstractSocket::IPv4Protocol) + broadcastAddresses.append(broadcast); + } } } if (broadcastAddresses.isEmpty()) @@ -293,7 +296,7 @@ void tst_QUdpSocket::broadcasting() #ifdef FORCE_SESSION serverSocket.setProperty("_q_networksession", QVariant::fromValue(networkSession)); #endif - QVERIFY2(serverSocket.bind(QHostAddress::Any, 5000), serverSocket.errorString().toLatin1().constData()); + QVERIFY2(serverSocket.bind(QHostAddress::AnyIPv4, 5000), serverSocket.errorString().toLatin1().constData()); QCOMPARE(serverSocket.state(), QUdpSocket::BoundState); @@ -303,7 +306,7 @@ void tst_QUdpSocket::broadcasting() #ifdef FORCE_SESSION broadcastSocket.setProperty("_q_networksession", QVariant::fromValue(networkSession)); #endif - broadcastSocket.bind(); + broadcastSocket.bind(QHostAddress(QHostAddress::AnyIPv4), 0); for (int j = 0; j < 100; ++j) { for (int k = 0; k < 4; k++) { |