summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordknn <yoann.blein@free.fr>2012-08-16 16:05:33 (GMT)
committerdknn <yoann.blein@free.fr>2012-09-22 09:32:38 (GMT)
commit867a950d5b3eb1422051a57c2533509188014b1a (patch)
tree01c9d7372c7e780aaa90456df2bac55082632dae /Swiften/ScreenSharing/ScreenSharing.cpp
parent054bf7baf02cf088930c340fead40b464c1ed015 (diff)
downloadswift-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.cpp32
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());