fix(iroh): Disable QAD if no IP transports are configured#3926
fix(iroh): Disable QAD if no IP transports are configured#3926dignifiedquire merged 4 commits intomainfrom
Conversation
|
Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3926/docs/iroh/ Last updated: 2026-02-12T11:43:04Z |
iroh/src/endpoint.rs
Outdated
| .insecure_skip_relay_cert_verify(true) | ||
| .bind() | ||
| .await?; | ||
| tokio::time::timeout(Duration::from_millis(500), client.online()) |
There was a problem hiding this comment.
This will be flaky on CI sadly.
There was a problem hiding this comment.
True. Removed the test. There's not really a way to test this apart from timing because we don't expose further details AFAICS.
iroh/src/socket.rs
Outdated
| let _unused_in_browsers = change; | ||
| }, | ||
| state = self.netmon_watcher.updated() => { | ||
| state = &mut netmon_watcher_updated, if netmon_watcher_updated.is_some() => { |
There was a problem hiding this comment.
Are you sure this is fine? Because self.handlle_network_change does go and tell the transports that they should go an rebind on a major network change. Which means the relay transport would close and open the connection, ensuring the relay tunnel has the best chance of being connected when an endpoint moves between networks. So I'm not sure you can just disable netmon like this.
There was a problem hiding this comment.
Agreed. Let's leave this for a separate PR. I removed all netmon changes and strictly made this PR about disabling QAD if there are no IP transports.
17e49ac to
f5cecf1
Compare
f5cecf1 to
32f7258
Compare
32f7258 to
df7a056
Compare
Description
When no IP transports are configured, QAD will always fail, because it uses an endpoint without ip transports and thus can't send anything. Therefore, this PR changes this such that when IP transports are disabled, no QAD config is created for the relay client, thus QAD probes will be skipped.