Skip to content
Snippets Groups Projects
Commit fb90fcf3 authored by Éloïs's avatar Éloïs
Browse files

[feat] ws2p1: apply param prefered pubkeys

parent d7d9f135
No related branches found
No related tags found
1 merge request!143Resolve "WS2Pv1: add feature prefered pubkeys"
......@@ -28,6 +28,7 @@ use durs_network::documents::BlockchainDocument;
use durs_network_documents::network_endpoint::EndpointV1;
use rand::Rng;
use states::WS2PConnectionState;
use std::cmp::Ordering;
use std::collections::HashSet;
#[allow(deprecated)]
use ws::Sender;
......@@ -64,8 +65,10 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) {
| WS2PConnectionState::Close
| WS2PConnectionState::Denial => {
pubkeys.insert(ep.issuer);
if ws2p_module.ssl || ep.port != 443 {
reachable_endpoints.push(ep);
}
}
_ => {
pubkeys.insert(ep.issuer);
unreachable_endpoints.push(ep);
......@@ -73,6 +76,19 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) {
}
}
}
if !ws2p_module.conf.prefered_pubkeys.is_empty() {
reachable_endpoints.sort_unstable_by(|ep1, ep2| {
if ws2p_module.conf.prefered_pubkeys.contains(&ep1.issuer) {
if ws2p_module.conf.prefered_pubkeys.contains(&ep2.issuer) {
Ordering::Equal
} else {
Ordering::Greater
}
} else {
Ordering::Less
}
});
}
let mut free_outcoming_rooms =
ws2p_module.conf.clone().outcoming_quota - count_established_connections;
while free_outcoming_rooms > 0 {
......@@ -87,9 +103,6 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) {
} else {
break;
};
if !ws2p_module.ssl && ep.port == 443 {
continue;
}
connect_to_without_checking_quotas(ws2p_module, unwrap!(ep.node_full_id()));
free_outcoming_rooms -= 1;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment