Peerset::discovered accepts many peer ids (#2213)

* Peerset::discovered accepts many peer ids

* Improve tracing in peerset
This commit is contained in:
Marek Kotewicz
2019-04-05 14:44:46 +02:00
committed by Bastian Köcher
parent 1142bcde97
commit b01136c90d
3 changed files with 30 additions and 18 deletions
@@ -255,7 +255,7 @@ impl<TMessage, TSubstream> NetworkBehaviourEventProcess<IdentifyEvent> for Behav
for addr in &info.listen_addrs {
self.discovery.kademlia.add_connected_address(&peer_id, addr.clone());
}
self.custom_protocols.add_discovered_node(&peer_id);
self.custom_protocols.add_discovered_nodes(Some(peer_id.clone()));
self.events.push(BehaviourOut::Identified { peer_id, info });
}
IdentifyEvent::Error { .. } => {}
@@ -272,7 +272,7 @@ impl<TMessage, TSubstream> NetworkBehaviourEventProcess<KademliaOut> for Behavio
match out {
KademliaOut::Discovered { .. } => {}
KademliaOut::KBucketAdded { peer_id, .. } => {
self.custom_protocols.add_discovered_node(&peer_id);
self.custom_protocols.add_discovered_nodes(Some(peer_id));
}
KademliaOut::FindNodeResult { key, closer_peers } => {
trace!(target: "sub-libp2p", "Libp2p => Query for {:?} yielded {:?} results",
@@ -303,9 +303,7 @@ impl<TMessage, TSubstream> NetworkBehaviourEventProcess<MdnsEvent> for Behaviour
fn inject_event(&mut self, event: MdnsEvent) {
match event {
MdnsEvent::Discovered(list) => {
for (peer_id, _) in list {
self.custom_protocols.add_discovered_node(&peer_id);
}
self.custom_protocols.add_discovered_nodes(list.into_iter().map(|(peer_id, _)| peer_id));
},
MdnsEvent::Expired(_) => {}
}
@@ -313,9 +313,11 @@ impl<TMessage, TSubstream> CustomProto<TMessage, TSubstream> {
}
/// Indicates to the peerset that we have discovered new addresses for a given node.
pub fn add_discovered_node(&mut self, peer_id: &PeerId) {
debug!(target: "sub-libp2p", "PSM <= Discovered({:?})", peer_id);
self.peerset.discovered(peer_id.clone())
pub fn add_discovered_nodes<I: IntoIterator<Item = PeerId>>(&mut self, peer_ids: I) {
self.peerset.discovered(peer_ids.into_iter().map(|peer_id| {
debug!(target: "sub-libp2p", "PSM <= Discovered({:?})", peer_id);
peer_id
}));
}
/// Returns the state of the peerset manager, for debugging purposes.