Compare commits

...

1 Commits

Author SHA1 Message Date
durch 31c6090576 Construct test routes from good nodes only 2022-04-03 20:11:06 +02:00
@@ -229,7 +229,7 @@ impl PacketPreparer {
} }
async fn all_mixnodes_and_gateways(&self) -> (Vec<MixNodeBond>, Vec<GatewayBond>) { async fn all_mixnodes_and_gateways(&self) -> (Vec<MixNodeBond>, Vec<GatewayBond>) {
info!(target: "Monitor", "Obtaining network topology..."); info!(target: "Monitor", "Obtaining entire network topology...");
let mixnodes = self.validator_cache.mixnodes_all().await; let mixnodes = self.validator_cache.mixnodes_all().await;
let gateways = self.validator_cache.gateways_all().await; let gateways = self.validator_cache.gateways_all().await;
@@ -237,6 +237,15 @@ impl PacketPreparer {
(mixnodes, gateways) (mixnodes, gateways)
} }
async fn mixnodes_and_gateways(&self) -> (Vec<MixNodeBond>, Vec<GatewayBond>) {
info!(target: "Monitor", "Obtaining good network topology...");
let mixnodes = self.validator_cache.mixnodes().await;
let gateways = self.validator_cache.gateways().await;
(mixnodes, gateways)
}
pub(crate) fn try_parse_mix_bond(&self, mix: &MixNodeBond) -> Result<mix::Node, String> { pub(crate) fn try_parse_mix_bond(&self, mix: &MixNodeBond) -> Result<mix::Node, String> {
let identity = mix.mix_node.identity_key.clone(); let identity = mix.mix_node.identity_key.clone();
if !self.check_version_compatibility(&mix.mix_node.version) { if !self.check_version_compatibility(&mix.mix_node.version) {
@@ -266,7 +275,7 @@ impl PacketPreparer {
n: usize, n: usize,
blacklist: &mut HashSet<String>, blacklist: &mut HashSet<String>,
) -> Option<Vec<TestRoute>> { ) -> Option<Vec<TestRoute>> {
let (mixnodes, gateways) = self.all_mixnodes_and_gateways().await; let (mixnodes, gateways) = self.mixnodes_and_gateways().await;
// separate mixes into layers for easier selection // separate mixes into layers for easier selection
let mut layered_mixes = HashMap::new(); let mut layered_mixes = HashMap::new();
for mix in mixnodes { for mix in mixnodes {