From fab2e18c6451705be9fb784a248260d304f621c7 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 6 Dec 2010 09:22:06 +0000 Subject: rework QXmppStunMessage::peekType to return magic cookie --- src/QXmppStun.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/QXmppStun.cpp') diff --git a/src/QXmppStun.cpp b/src/QXmppStun.cpp index 0c2443db..5bebb379 100644 --- a/src/QXmppStun.cpp +++ b/src/QXmppStun.cpp @@ -661,7 +661,7 @@ QByteArray QXmppStunMessage::encode(const QString &password, bool addFingerprint /// /// \param buffer -quint16 QXmppStunMessage::peekType(const QByteArray &buffer, QByteArray &id) +quint16 QXmppStunMessage::peekType(const QByteArray &buffer, quint32 &cookie, QByteArray &id) { if (buffer.size() < STUN_HEADER) return 0; @@ -670,7 +670,6 @@ quint16 QXmppStunMessage::peekType(const QByteArray &buffer, QByteArray &id) QDataStream stream(buffer); quint16 type; quint16 length; - quint32 cookie; stream >> type; stream >> length; stream >> cookie; @@ -1033,9 +1032,10 @@ void QXmppIceComponent::readyRead() socket->readDatagram(buffer.data(), buffer.size(), &remoteHost, &remotePort); // if this is not a STUN message, emit it + quint32 messageCookie; QByteArray messageId; - quint16 messageType = QXmppStunMessage::peekType(buffer, messageId); - if (!messageType) + quint16 messageType = QXmppStunMessage::peekType(buffer, messageCookie, messageId); + if (!messageType || messageCookie != STUN_MAGIC) { // use this as an opportunity to flag a potential pair if (!m_fallbackPair) { -- cgit v1.2.3