+ Event::ConnectionNeeded { node_id, addresses } => {
+ tokio::spawn(async move {
+ for address in addresses {
+ if let Ok(sockaddrs) = address.to_socket_addrs() {
+ for addr in sockaddrs {
+ let pm = Arc::clone(&peer_manager);
+ if cli::connect_peer_if_necessary(node_id, addr, pm).await.is_ok() {
+ return;
+ }
+ }
+ }
+ }
+ });
+ }