diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-09-29 20:24:44 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-09-29 20:24:44 (GMT) |
commit | 0f752eb381b44182e048c39e621fba552c2179f0 (patch) | |
tree | 812b7c2801bf3698df0f951efa3bc4ec39f6e95b /Swiften/FileTransfer | |
parent | eb25d910e7991503eaa74233f0b396648f512e88 (diff) | |
download | swift-0f752eb381b44182e048c39e621fba552c2179f0.zip swift-0f752eb381b44182e048c39e621fba552c2179f0.tar.bz2 |
Work around FT crash when proxies are available.
Diffstat (limited to 'Swiften/FileTransfer')
-rw-r--r-- | Swiften/FileTransfer/DefaultLocalJingleTransportCandidateGenerator.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Swiften/FileTransfer/DefaultLocalJingleTransportCandidateGenerator.cpp b/Swiften/FileTransfer/DefaultLocalJingleTransportCandidateGenerator.cpp index 5b6da4c..4b205cb 100644 --- a/Swiften/FileTransfer/DefaultLocalJingleTransportCandidateGenerator.cpp +++ b/Swiften/FileTransfer/DefaultLocalJingleTransportCandidateGenerator.cpp @@ -67,13 +67,15 @@ void DefaultLocalJingleTransportCandidateGenerator::generateLocalTransportCandid // get proxy candidates std::vector<S5BProxyRequest::ref> proxyCandidates = s5bProxy->getS5BProxies(); foreach(S5BProxyRequest::ref proxy, proxyCandidates) { - JingleS5BTransportPayload::Candidate candidate; - candidate.type = JingleS5BTransportPayload::Candidate::ProxyType; - candidate.jid = proxy->getStreamHost().get().jid; - candidate.hostPort = proxy->getStreamHost().get().addressPort; - candidate.priority = 65536 * 10 + localPreference; - candidate.cid = idGenerator.generateID(); - payL->addCandidate(candidate); + if (proxy->getStreamHost()) { // FIXME: Added this test, because there were cases where this wasn't initialized. Investigate this. (Remko) + JingleS5BTransportPayload::Candidate candidate; + candidate.type = JingleS5BTransportPayload::Candidate::ProxyType; + candidate.jid = (*proxy->getStreamHost()).jid; + candidate.hostPort = (*proxy->getStreamHost()).addressPort; + candidate.priority = 65536 * 10 + localPreference; + candidate.cid = idGenerator.generateID(); + payL->addCandidate(candidate); + } } onLocalTransportCandidatesGenerated(payL); |