Optimized peer connections.
This commit is contained in:
+8
-8
@@ -290,23 +290,23 @@ impl Peers {
|
|||||||
if self.new_peers.is_empty() {
|
if self.new_peers.is_empty() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for addr in &self.new_peers.clone() {
|
let addr = self.new_peers.remove(0);
|
||||||
self.connect_peer(&addr, registry, unique_token, yggdrasil_only);
|
self.connect_peer(&addr, registry, unique_token, yggdrasil_only);
|
||||||
}
|
|
||||||
self.new_peers.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Connecting to configured (bootstrap) peers
|
/// Connecting to configured (bootstrap) peers
|
||||||
pub fn connect_peers(&mut self, peers_addrs: Vec<String>, registry: &Registry, unique_token: &mut Token, yggdrasil_only: bool) {
|
pub fn connect_peers(&mut self, peers_addrs: Vec<String>, registry: &Registry, unique_token: &mut Token, yggdrasil_only: bool) {
|
||||||
for peer in peers_addrs.iter() {
|
for peer in peers_addrs.iter() {
|
||||||
let addresses: Vec<SocketAddr> = match peer.to_socket_addrs() {
|
let mut addresses: Vec<SocketAddr> = match peer.to_socket_addrs() {
|
||||||
Ok(peers) => { peers.collect() }
|
Ok(peers) => { peers.collect() }
|
||||||
Err(_) => { error!("Can't resolve address {}", &peer); continue; }
|
Err(_) => { error!("Can't resolve address {}", &peer); continue; }
|
||||||
};
|
};
|
||||||
|
|
||||||
for addr in addresses {
|
// At first we connect to one peer address from every "peer" or domain
|
||||||
self.connect_peer(&addr, registry, unique_token, yggdrasil_only);
|
let addr = addresses.remove(0);
|
||||||
}
|
self.connect_peer(&addr, registry, unique_token, yggdrasil_only);
|
||||||
|
// Copy others to new_peers, to connect later
|
||||||
|
self.new_peers.append(&mut addresses);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user