Add custom Iroh relay maps
This commit is contained in:
parent
81149605bc
commit
280472cecb
10 changed files with 241 additions and 32 deletions
|
|
@ -454,8 +454,9 @@ async fn start_daemon_iroh_endpoint(
|
|||
node: &mut LocalNode,
|
||||
) -> Result<Option<GethIrohEndpoint>, NodeError> {
|
||||
let node_config = GethConfig::load(&node.paths.config_file())?;
|
||||
let relay_mode = node_config.iroh.relay_mode;
|
||||
let iroh_relay_mode = config_relay_mode_to_iroh(relay_mode);
|
||||
let relay_mode = node_config.iroh.relay_mode.clone();
|
||||
let relay_mode_label = relay_mode.label();
|
||||
let iroh_relay_mode = config_relay_mode_to_iroh(&relay_mode, &node_config.iroh.relay_maps);
|
||||
let config = GethIrohConfig::local_with_relay(node.paths.iroh_key(), iroh_relay_mode);
|
||||
match geth_iroh::start_endpoint(&config).await {
|
||||
Ok(endpoint) => {
|
||||
|
|
@ -471,7 +472,7 @@ async fn start_daemon_iroh_endpoint(
|
|||
node.iroh_status = EndpointStatus {
|
||||
enabled: false,
|
||||
endpoint_id: None,
|
||||
relay_mode: relay_mode.as_str().to_owned(),
|
||||
relay_mode: relay_mode_label,
|
||||
note: format!("Iroh endpoint failed to start: {error}"),
|
||||
};
|
||||
Ok(None)
|
||||
|
|
@ -479,11 +480,23 @@ async fn start_daemon_iroh_endpoint(
|
|||
}
|
||||
}
|
||||
|
||||
fn config_relay_mode_to_iroh(mode: RelayMode) -> GethRelayMode {
|
||||
fn config_relay_mode_to_iroh(
|
||||
mode: &RelayMode,
|
||||
relay_maps: &std::collections::BTreeMap<String, geth_config::RelayMapConfig>,
|
||||
) -> GethRelayMode {
|
||||
match mode {
|
||||
RelayMode::Disabled => GethRelayMode::Disabled,
|
||||
RelayMode::Default => GethRelayMode::Default,
|
||||
RelayMode::Staging => GethRelayMode::Staging,
|
||||
RelayMode::Custom { map } => {
|
||||
let relay_map = relay_maps
|
||||
.get(map)
|
||||
.expect("custom relay map was validated during config load");
|
||||
GethRelayMode::Custom {
|
||||
name: map.clone(),
|
||||
relay_urls: relay_map.urls.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue