Skip to content
Snippets Groups Projects
Commit 9dad7c69 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

peer discovery: cleanup

parent 5cc5b98a
Branches
Tags
No related merge requests found
......@@ -23,7 +23,7 @@
#include "utils.h"
#ifdef __ANDROID__
#include "getif_workaround_android.h"
#include "compat/getif_workaround_android.h"
#endif
#include <asio.hpp>
......@@ -99,18 +99,19 @@ PeerDiscovery::DomainPeerDiscovery::DomainPeerDiscovery(asio::ip::udp domain, in
if(domain.family() == AF_INET && strcmp(e.what(), "set_option: No such device") == 0) {
try{
sockFd_.set_option(asio::ip::udp::socket::reuse_address(true));
auto my_interface = workaround::get_interface();
sockFd_.set_option(asio::ip::multicast::outbound_interface(my_interface));
sockFd_.set_option(asio::ip::multicast::join_group(sockAddrSend_.address().to_v4(), my_interface));
auto mc_interface = workaround::get_interface();
sockFd_.set_option(asio::ip::multicast::outbound_interface(mc_interface));
sockFd_.set_option(asio::ip::multicast::join_group(sockAddrSend_.address().to_v4(), mc_interface));
sockFd_.bind({domain, port});
} catch(const std::exception& e){
if (logger_)
logger_->e("android discovery workaround: %s",e.what());
logger_->error("Can't start peer discovery using android workaround: {}", e.what());
}
}
else
#endif
if (logger_)
logger_->e("Can't start peer discovery for %s: %s",
logger_->error("Can't start peer discovery for {}: {}",
domain.family() == AF_INET ? "IPv4" : "IPv6", e.what());
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment