diff options
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()); |