diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2010-07-22 12:26:45 (GMT) |
---|---|---|
committer | Bradley T. Hughes <bradley.hughes@nokia.com> | 2010-09-01 12:24:41 (GMT) |
commit | 41d8edda671e42c916f45e6eb2716fd76982a121 (patch) | |
tree | c5f318806f10fa7b4c6f4f1ca6ef8d84899f3a75 /tests/auto/qudpsocket | |
parent | b7fae53bf12d61274de7d5131ddc15d8f356df59 (diff) | |
download | Qt-41d8edda671e42c916f45e6eb2716fd76982a121.zip Qt-41d8edda671e42c916f45e6eb2716fd76982a121.tar.gz Qt-41d8edda671e42c916f45e6eb2716fd76982a121.tar.bz2 |
Add MulticastTtlOption and MulticastLoopbackOption to QAbstractSocket
These options only make sense and work in QUdpSocket when using
multicasting. Previously, the loopback was set when joining a multicast
group, but the loopback flag is not a per-group flag, it's per socket,
hence this change.
The ability to set the multicast TTL is needed as well, so this is added
as a socket option as well.
Autotest updated to test both.
Diffstat (limited to 'tests/auto/qudpsocket')
-rw-r--r-- | tests/auto/qudpsocket/tst_qudpsocket.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/tests/auto/qudpsocket/tst_qudpsocket.cpp b/tests/auto/qudpsocket/tst_qudpsocket.cpp index 3c08cd7..852986d 100644 --- a/tests/auto/qudpsocket/tst_qudpsocket.cpp +++ b/tests/auto/qudpsocket/tst_qudpsocket.cpp @@ -866,7 +866,15 @@ void tst_QUdpSocket::multicast() // bind first, then verify that we can join the multicast group QVERIFY2(receiver.bind(), qPrintable(receiver.errorString())); - QVERIFY2(receiver.joinMulticastGroup(groupAddress, QUdpSocket::MulticastLoopback), + receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 2); + QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 2); + receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 128); + QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 128); + receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 0); + QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 0); + receiver.setSocketOption(QUdpSocket::MulticastLoopbackOption, 1); + QCOMPARE(receiver.socketOption(QUdpSocket::MulticastLoopbackOption).toInt(), 1); + QVERIFY2(receiver.joinMulticastGroup(groupAddress), qPrintable(receiver.errorString())); QList<QByteArray> datagrams = QList<QByteArray>() @@ -901,7 +909,11 @@ void tst_QUdpSocket::multicast() QVERIFY2(receiver.bind(), qPrintable(receiver.errorString())); - QVERIFY2(receiver.joinMulticastGroup(groupAddress, QUdpSocket::MulticastLoopback), + receiver.setSocketOption(QUdpSocket::MulticastTtlOption, 128); + QCOMPARE(receiver.socketOption(QUdpSocket::MulticastTtlOption).toInt(), 128); + receiver.setSocketOption(QUdpSocket::MulticastLoopbackOption, 0); + QCOMPARE(receiver.socketOption(QUdpSocket::MulticastLoopbackOption).toInt(), 0); + QVERIFY2(receiver.joinMulticastGroup(groupAddress), qPrintable(receiver.errorString())); receiver.close(); QTest::ignoreMessage(QtWarningMsg, "QUdpSocket::leaveMulticastGroup() called on a QUdpSocket when not in QUdpSocket::BoundState"); |