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; ...@@ -28,6 +28,7 @@ use durs_network::documents::BlockchainDocument;
use durs_network_documents::network_endpoint::EndpointV1; use durs_network_documents::network_endpoint::EndpointV1;
use rand::Rng; use rand::Rng;
use states::WS2PConnectionState; use states::WS2PConnectionState;
use std::cmp::Ordering;
use std::collections::HashSet; use std::collections::HashSet;
#[allow(deprecated)] #[allow(deprecated)]
use ws::Sender; use ws::Sender;
...@@ -64,8 +65,10 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) { ...@@ -64,8 +65,10 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) {
| WS2PConnectionState::Close | WS2PConnectionState::Close
| WS2PConnectionState::Denial => { | WS2PConnectionState::Denial => {
pubkeys.insert(ep.issuer); pubkeys.insert(ep.issuer);
if ws2p_module.ssl || ep.port != 443 {
reachable_endpoints.push(ep); reachable_endpoints.push(ep);
} }
}
_ => { _ => {
pubkeys.insert(ep.issuer); pubkeys.insert(ep.issuer);
unreachable_endpoints.push(ep); unreachable_endpoints.push(ep);
...@@ -73,6 +76,19 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) { ...@@ -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 = let mut free_outcoming_rooms =
ws2p_module.conf.clone().outcoming_quota - count_established_connections; ws2p_module.conf.clone().outcoming_quota - count_established_connections;
while free_outcoming_rooms > 0 { while free_outcoming_rooms > 0 {
...@@ -87,9 +103,6 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) { ...@@ -87,9 +103,6 @@ pub fn connect_to_know_endpoints(ws2p_module: &mut WS2PModule) {
} else { } else {
break; break;
}; };
if !ws2p_module.ssl && ep.port == 443 {
continue;
}
connect_to_without_checking_quotas(ws2p_module, unwrap!(ep.node_full_id())); connect_to_without_checking_quotas(ws2p_module, unwrap!(ep.node_full_id()));
free_outcoming_rooms -= 1; 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