Skip to content

fix(iroh): Disable QAD if no IP transports are configured#3926

Merged
dignifiedquire merged 4 commits intomainfrom
fix/no-qad-without-ip
Feb 16, 2026
Merged

fix(iroh): Disable QAD if no IP transports are configured#3926
dignifiedquire merged 4 commits intomainfrom
fix/no-qad-without-ip

Conversation

@Frando
Copy link
Copy Markdown
Member

@Frando Frando commented Feb 11, 2026

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.

@Frando Frando changed the title fix: disable qad and netmon if no ip transports configured fix: disable QAD and netmon if no ip transports configured Feb 11, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 11, 2026

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

.insecure_skip_relay_cert_verify(true)
.bind()
.await?;
tokio::time::timeout(Duration::from_millis(500), client.online())
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be flaky on CI sadly.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True. Removed the test. There's not really a way to test this apart from timing because we don't expose further details AFAICS.

let _unused_in_browsers = change;
},
state = self.netmon_watcher.updated() => {
state = &mut netmon_watcher_updated, if netmon_watcher_updated.is_some() => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@n0bot n0bot bot added this to iroh Feb 11, 2026
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Feb 11, 2026
@Frando Frando force-pushed the fix/no-qad-without-ip branch from 17e49ac to f5cecf1 Compare February 12, 2026 11:06
@Frando Frando changed the title fix: disable QAD and netmon if no ip transports configured fix: disable QAD if no ip transports configured Feb 12, 2026
@Frando Frando force-pushed the fix/no-qad-without-ip branch from f5cecf1 to 32f7258 Compare February 12, 2026 11:08
@Frando Frando force-pushed the fix/no-qad-without-ip branch from 32f7258 to df7a056 Compare February 12, 2026 11:10
@Frando Frando requested a review from flub February 12, 2026 11:10
@Frando Frando changed the title fix: disable QAD if no ip transports configured fix(iroh): Disable QAD if no IP transports are configured Feb 12, 2026
@dignifiedquire dignifiedquire merged commit aa14381 into main Feb 16, 2026
29 of 30 checks passed
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in iroh Feb 16, 2026
@dignifiedquire dignifiedquire deleted the fix/no-qad-without-ip branch February 16, 2026 11:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

4 participants