diff --git a/src/peer_discovery.cpp b/src/peer_discovery.cpp index 3378a410a9dceb27bd3de2c799e28bfa1c0dd2f9..b5647ee8fefc3277c36da3d069b1b4b4944f3513 100644 --- a/src/peer_discovery.cpp +++ b/src/peer_discovery.cpp @@ -66,13 +66,13 @@ private: bool drunning_ {false}; void loopListener(); - void query(const asio::ip::udp::endpoint peer); + void query(const asio::ip::udp::endpoint& peer); void reloadMessages(); void stopDiscovery(); void stopPublish(); - void publish(const asio::ip::udp::endpoint peer); + void publish(const asio::ip::udp::endpoint& peer); void reDiscover(); }; @@ -167,10 +167,10 @@ PeerDiscovery::DomainPeerDiscovery::loopListener() } void -PeerDiscovery::DomainPeerDiscovery::query(const asio::ip::udp::endpoint peer) +PeerDiscovery::DomainPeerDiscovery::query(const asio::ip::udp::endpoint& peer) { - std::lock_guard<std::mutex> lck(mtx_); - if (not lrunning_) + std::lock_guard<std::mutex> lck(dmtx_); + if (not drunning_) return; msgpack::sbuffer pbuf_request; @@ -188,7 +188,7 @@ PeerDiscovery::DomainPeerDiscovery::query(const asio::ip::udp::endpoint peer) } void -PeerDiscovery::DomainPeerDiscovery::publish(const asio::ip::udp::endpoint peer) +PeerDiscovery::DomainPeerDiscovery::publish(const asio::ip::udp::endpoint& peer) { std::lock_guard<std::mutex> lck(mtx_); if (not lrunning_) @@ -293,6 +293,7 @@ PeerDiscovery::DomainPeerDiscovery::reDiscover() logger_->w("can't multicast on %s: %s", sockAddrSend_.address().to_string().c_str(), ec.message().c_str()); + query(sockAddrSend_); } void