From c8368d4f6d7af251b7462d896fa40814ddf7ff8c Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Mon, 24 Aug 2015 09:16:18 +0200 Subject: ICE: sort candidate pairs according RFC 5245 --- src/base/QXmppStun.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/base/QXmppStun.cpp') diff --git a/src/base/QXmppStun.cpp b/src/base/QXmppStun.cpp index 5c0d8e85..f6dd84c8 100644 --- a/src/base/QXmppStun.cpp +++ b/src/base/QXmppStun.cpp @@ -1550,6 +1550,11 @@ private: bool m_controlling; }; +static bool candidatePairPtrLessThan(const CandidatePair *p1, const CandidatePair *p2) +{ + return p1->priority() < p2->priority(); +} + CandidatePair::CandidatePair(int component, bool controlling) : checked(QIODevice::NotOpen), socket(0), @@ -1828,6 +1833,9 @@ bool QXmppIceComponent::addRemoteCandidate(const QXmppJingleCandidate &candidate pair->socket = 0; m_pairs << pair; } + + qSort(m_pairs.begin(), m_pairs.end(), candidatePairPtrLessThan); + return true; } @@ -1855,6 +1863,8 @@ CandidatePair *QXmppIceComponent::addRemoteCandidate(QUdpSocket *socket, const Q pair->socket = socket; m_pairs << pair; + qSort(m_pairs.begin(), m_pairs.end(), candidatePairPtrLessThan); + debug(QString("Added candidate %1").arg(pair->toString())); return pair; } -- cgit v1.2.3