diff --git a/src/getif_workaround_android.h b/src/compat/getif_workaround_android.h similarity index 100% rename from src/getif_workaround_android.h rename to src/compat/getif_workaround_android.h diff --git a/src/peer_discovery.cpp b/src/peer_discovery.cpp index 563d1d1b816590f1ee164b9fd0a31912f21ce14a..48fa7c1b3e93874715015fd2ca364440c81fc7cc 100644 --- a/src/peer_discovery.cpp +++ b/src/peer_discovery.cpp @@ -23,7 +23,7 @@ #include "utils.h" #ifdef __ANDROID__ -#include "getif_workaround_android.h" +#include "compat/getif_workaround_android.h" #endif #include <asio.hpp> @@ -96,21 +96,22 @@ PeerDiscovery::DomainPeerDiscovery::DomainPeerDiscovery(asio::ip::udp domain, in sockFd_.bind({domain, port}); } catch (const std::exception& e) { #ifdef __ANDROID__ - if(domain.family() == AF_INET && strcmp(e.what(), "set_option: No such device") == 0){ + 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)); + sockFd_.set_option(asio::ip::udp::socket::reuse_address(true)); + 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){ + } 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()); } }