more attempts
This commit is contained in:
@@ -130,12 +130,20 @@ pub enum TestedNode {
|
||||
SameAsEntry,
|
||||
Custom {
|
||||
identity: NodeIdentity,
|
||||
shares_entry: bool,
|
||||
},
|
||||
}
|
||||
|
||||
impl TestedNode {
|
||||
pub fn is_same_as_entry(&self) -> bool {
|
||||
matches!(self, TestedNode::SameAsEntry)
|
||||
matches!(
|
||||
self,
|
||||
TestedNode::SameAsEntry
|
||||
| TestedNode::Custom {
|
||||
shares_entry: true,
|
||||
..
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +194,7 @@ impl Probe {
|
||||
) -> anyhow::Result<ProbeResult> {
|
||||
let tickets_materials = self.credentials_args.decode_attached_ticket_materials()?;
|
||||
|
||||
let tested_entry = !only_wireguard;
|
||||
let tested_entry = self.tested_node.is_same_as_entry();
|
||||
let (mixnet_entry_gateway_id, node_info) = self.lookup_gateway(&directory).await?;
|
||||
|
||||
let storage = Ephemeral::default();
|
||||
@@ -232,7 +240,7 @@ impl Probe {
|
||||
only_wireguard: bool,
|
||||
min_mixnet_performance: Option<u8>,
|
||||
) -> anyhow::Result<ProbeResult> {
|
||||
let tested_entry = !only_wireguard;
|
||||
let tested_entry = self.tested_node.is_same_as_entry();
|
||||
let (mixnet_entry_gateway_id, node_info) = self.lookup_gateway(&directory).await?;
|
||||
|
||||
if config_dir.is_file() {
|
||||
@@ -309,7 +317,20 @@ impl Probe {
|
||||
let entry_gateway = directory.entry_gateway(&self.entrypoint)?;
|
||||
|
||||
let node_info: TestedNodeDetails = match self.tested_node {
|
||||
TestedNode::Custom { identity } => {
|
||||
TestedNode::Custom {
|
||||
identity: _,
|
||||
shares_entry: true,
|
||||
} => {
|
||||
debug!(
|
||||
"testing node {} as both entry and exit",
|
||||
entry_gateway.identity()
|
||||
);
|
||||
entry_gateway.to_testable_node()?
|
||||
}
|
||||
TestedNode::Custom {
|
||||
identity,
|
||||
shares_entry: false,
|
||||
} => {
|
||||
let node = directory.get_nym_node(identity)?;
|
||||
info!(
|
||||
"testing node {} (via entry {})",
|
||||
@@ -421,12 +442,17 @@ impl Probe {
|
||||
storage.credential_store().clone(),
|
||||
client,
|
||||
);
|
||||
let credential = bw_controller
|
||||
.prepare_ecash_ticket(
|
||||
let (wg_ticket_type, credential_provider) = if tested_entry {
|
||||
(
|
||||
TicketType::V1WireguardEntry,
|
||||
nym_address.gateway().to_bytes(),
|
||||
1,
|
||||
)
|
||||
} else {
|
||||
(TicketType::V1WireguardExit, node_info.identity.to_bytes())
|
||||
};
|
||||
|
||||
let credential = bw_controller
|
||||
.prepare_ecash_ticket(wg_ticket_type, credential_provider, 1)
|
||||
.await?
|
||||
.data;
|
||||
|
||||
@@ -711,11 +737,7 @@ async fn do_ping_entry(
|
||||
}
|
||||
info!("Successfully mixnet pinged ourselves");
|
||||
|
||||
if tested_entry {
|
||||
Entry::success()
|
||||
} else {
|
||||
Entry::NotTested
|
||||
}
|
||||
Entry::success()
|
||||
}
|
||||
|
||||
async fn connect_exit(
|
||||
|
||||
@@ -124,22 +124,31 @@ pub(crate) async fn run() -> anyhow::Result<ProbeResult> {
|
||||
|
||||
let directory = NymApiDirectory::new(api_url).await?;
|
||||
|
||||
let entry = if let Some(gateway) = &args.entry_gateway {
|
||||
NodeIdentity::from_base58_string(gateway)?
|
||||
} else if let Some(node) = args.node {
|
||||
if directory.entry_gateway(&node).is_ok() {
|
||||
node
|
||||
} else {
|
||||
directory.random_entry_gateway()?
|
||||
}
|
||||
let node_override = args.node;
|
||||
let entry_override = if let Some(gateway) = &args.entry_gateway {
|
||||
Some(NodeIdentity::from_base58_string(gateway)?)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let entry = if let Some(entry) = entry_override {
|
||||
entry
|
||||
} else if let Some(node) = node_override {
|
||||
node
|
||||
} else {
|
||||
directory.random_entry_gateway()?
|
||||
};
|
||||
|
||||
let test_point = if let Some(node) = args.node {
|
||||
TestedNode::Custom { identity: node }
|
||||
} else {
|
||||
TestedNode::SameAsEntry
|
||||
let test_point = match (node_override, entry_override) {
|
||||
(Some(node), Some(_)) => TestedNode::Custom {
|
||||
identity: node,
|
||||
shares_entry: false,
|
||||
},
|
||||
(Some(node), None) => TestedNode::Custom {
|
||||
identity: node,
|
||||
shares_entry: true,
|
||||
},
|
||||
(None, _) => TestedNode::SameAsEntry,
|
||||
};
|
||||
|
||||
let mut trial =
|
||||
|
||||
Reference in New Issue
Block a user