From 98a7497d74b24e71bd39adb41f6043f6fe23a9dd Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 23 Dec 2014 15:46:52 -0200 Subject: [PATCH] Silence warning in tst_QUdpSocket::multicast for Any+IPv4 QUdpSocket doesn't support binding to QHostAddress::Any and then joining an IPv4 multicat group since QHostAddress::Any is really an IPv6 socket with v6only = false. The test did check this case, but failed to ignore the warning. Change-Id: I62d782408319a6e566e0ff1a6081b706ac1f669c Reviewed-by: Richard J. Moore --- src/network/socket/qnativesocketengine.cpp | 4 ++-- tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp index c19815034dd..e7113c8c5e5 100644 --- a/src/network/socket/qnativesocketengine.cpp +++ b/src/network/socket/qnativesocketengine.cpp @@ -641,8 +641,8 @@ bool QNativeSocketEngine::joinMulticastGroup(const QHostAddress &groupAddress, if (groupAddress.protocol() == QAbstractSocket::IPv4Protocol && (d->socketProtocol == QAbstractSocket::IPv6Protocol || d->socketProtocol == QAbstractSocket::AnyIPProtocol)) { - qWarning("QAbstractSocket: cannot bind to QHostAddress::Any (or an IPv6 address) and join an IPv4 multicast group"); - qWarning("QAbstractSocket: bind to QHostAddress::AnyIPv4 instead if you want to do this"); + qWarning("QAbstractSocket: cannot bind to QHostAddress::Any (or an IPv6 address) and join an IPv4 multicast group;" + " bind to QHostAddress::AnyIPv4 instead if you want to do this"); return false; } diff --git a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp index a49f284938b..4b7ace86856 100644 --- a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp +++ b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp @@ -1249,7 +1249,7 @@ void tst_QUdpSocket::multicast_data() QTest::newRow("same bind, group ipv4 address") << groupAddress << true << groupAddress << true; QTest::newRow("valid bind, group ipv6 address") << any6Address << true << group6Address << true; QTest::newRow("valid bind, invalid group ipv6 address") << any6Address << true << any6Address << false; - QTest::newRow("same bind, group ipv6 address") << group6Address << true << group6Address << true; + QTest::newRow("same bind, group ipv6 address") << group6Address << false << group6Address << false; QTest::newRow("dual bind, group ipv4 address") << dualAddress << true << groupAddress << false; QTest::newRow("dual bind, group ipv6 address") << dualAddress << true << group6Address << true; } @@ -1279,6 +1279,12 @@ void tst_QUdpSocket::multicast() if (!bindResult) return; + if (bindAddress == QHostAddress::Any && groupAddress.protocol() == QAbstractSocket::IPv4Protocol) { + QCOMPARE(joinResult, false); + QTest::ignoreMessage(QtWarningMsg, + "QAbstractSocket: cannot bind to QHostAddress::Any (or an IPv6 address) and join an IPv4 multicast group;" + " bind to QHostAddress::AnyIPv4 instead if you want to do this"); + } QVERIFY2(receiver.joinMulticastGroup(groupAddress) == joinResult, qPrintable(receiver.errorString())); if (!joinResult)