From e3516d2bf48ae3958163ddc9f84f913b7116c464 Mon Sep 17 00:00:00 2001 From: Arkadiy Paronyan Date: Thu, 28 Mar 2019 17:21:53 +0100 Subject: [PATCH] Track peers in network-libp2p (#2135) --- substrate/core/network-libp2p/src/service_task.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/substrate/core/network-libp2p/src/service_task.rs b/substrate/core/network-libp2p/src/service_task.rs index a8d184cb73..12d0572869 100644 --- a/substrate/core/network-libp2p/src/service_task.rs +++ b/substrate/core/network-libp2p/src/service_task.rs @@ -313,7 +313,12 @@ where TMessage: CustomMessage + Send + 'static { fn poll_swarm(&mut self) -> Poll>, IoError> { loop { match self.swarm.poll() { - Ok(Async::Ready(Some(BehaviourOut::CustomProtocolOpen { peer_id, version, .. }))) => { + Ok(Async::Ready(Some(BehaviourOut::CustomProtocolOpen { peer_id, version, endpoint }))) => { + self.nodes_info.insert(peer_id.clone(), NodeInfo { + endpoint, + client_version: None, + latest_ping: None, + }); let debug_info = self.peer_debug_info(&peer_id); break Ok(Async::Ready(Some(ServiceEvent::OpenedCustomProtocol { peer_id, @@ -323,6 +328,7 @@ where TMessage: CustomMessage + Send + 'static { } Ok(Async::Ready(Some(BehaviourOut::CustomProtocolClosed { peer_id, .. }))) => { let debug_info = self.peer_debug_info(&peer_id); + self.nodes_info.remove(&peer_id); break Ok(Async::Ready(Some(ServiceEvent::ClosedCustomProtocol { peer_id, debug_info,