diff options
author | dknn <yoann.blein@free.fr> | 2012-08-16 16:05:33 (GMT) |
---|---|---|
committer | dknn <yoann.blein@free.fr> | 2012-09-22 09:32:38 (GMT) |
commit | 867a950d5b3eb1422051a57c2533509188014b1a (patch) | |
tree | 01c9d7372c7e780aaa90456df2bac55082632dae /Swiften/ScreenSharing/ScreenSharing.cpp | |
parent | 054bf7baf02cf088930c340fead40b464c1ed015 (diff) | |
download | swift-contrib-867a950d5b3eb1422051a57c2533509188014b1a.zip swift-contrib-867a950d5b3eb1422051a57c2533509188014b1a.tar.bz2 |
Add error resilence (buggy)
Diffstat (limited to 'Swiften/ScreenSharing/ScreenSharing.cpp')
-rw-r--r-- | Swiften/ScreenSharing/ScreenSharing.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/Swiften/ScreenSharing/ScreenSharing.cpp b/Swiften/ScreenSharing/ScreenSharing.cpp index f1b7ebf..7fb1280 100644 --- a/Swiften/ScreenSharing/ScreenSharing.cpp +++ b/Swiften/ScreenSharing/ScreenSharing.cpp @@ -65,11 +65,27 @@ bool ScreenSharing::addBestCandidate(boost::shared_ptr<JingleRawUDPTransportPayl } }*/ + SWIFT_LOG(debug) << "Screen sharing: Addresses available: " << std::endl; + foreach (const NetworkInterface& interface, interfaces) { + SWIFT_LOG(debug) << "\tInterface: " << interface.getName() << std::endl; + foreach (const HostAddress& addr, interface.getAddresses()) { + SWIFT_LOG(debug) << "\t\t" << addr.getRawAddress().to_string() << std::endl; + } + } + + std::string scopeLinkBeginning("fe80"); foreach (const NetworkInterface& interface, interfaces) { if (!interface.isLoopback()) { // exclude loopback foreach (const HostAddress& addr, interface.getAddresses()) { -// int port = serverSocket->bindOnAvailablePort(addr); - int port = serverSocket->bind(HostAddressPort(addr, 29999)); + // Disable ipv6 for now + if (addr.getRawAddress().is_v6()) + continue; + // Ignore link scope ipv6 addr + if (addr.getRawAddress().is_v6() && addr.toString().compare(2, scopeLinkBeginning.length(), scopeLinkBeginning) == 0) + continue; + + int port = serverSocket->bindOnAvailablePort(addr); +// int port = serverSocket->bind(HostAddressPort(addr, 29999)); if (!port) continue; @@ -82,6 +98,18 @@ bool ScreenSharing::addBestCandidate(boost::shared_ptr<JingleRawUDPTransportPayl } } + /* + int port = serverSocket->bind(HostAddressPort(HostAddress("0.0.0.0"), 29999)); + if (!port) + return false; + + candidate.hostAddressPort = HostAddressPort(HostAddress("82.225.14.174"), 29999); + candidate.type = JingleRawUDPTransportPayload::Candidate::Host; + transport->addCandidate(candidate); + + return true; +*/ + // else loopback for self sharing /*if (!interfaces.empty() && !interfaces.front().getAddresses().empty()) { int port = serverSocket->bindOnAvailablePort(interfaces.front().getAddresses().front()); |