Track peers in network-libp2p (#2135)

This commit is contained in:
Arkadiy Paronyan
2019-03-28 17:21:53 +01:00
committed by Gav Wood
parent 3f348d0a18
commit e3516d2bf4
@@ -313,7 +313,12 @@ where TMessage: CustomMessage + Send + 'static {
fn poll_swarm(&mut self) -> Poll<Option<ServiceEvent<TMessage>>, 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,