diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2015-08-24 09:16:18 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2015-08-24 09:23:22 +0200 |
| commit | c8368d4f6d7af251b7462d896fa40814ddf7ff8c (patch) | |
| tree | 89eec50ad8b3b03214c2c3e76bfdea83bedf27c5 /src/base/QXmppStun.cpp | |
| parent | 9b39d2ededda2c48660a3cccc2e32af930ff62ef (diff) | |
| download | qxmpp-c8368d4f6d7af251b7462d896fa40814ddf7ff8c.tar.gz | |
ICE: sort candidate pairs according RFC 5245
Diffstat (limited to 'src/base/QXmppStun.cpp')
| -rw-r--r-- | src/base/QXmppStun.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
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; } |
