Skip to content

Conversation

Frando
Copy link
Member

@Frando Frando commented Sep 29, 2025

Description

Based on #3473

In addition to the trait added in #3473 ,this adds a builder to allow setting more than one custom nameserver on the default hickory resolver, and to allow using other protocols than UDP.

The additional protocols are DNS over TCP, TLS, and HTTPS. For the latter two I enabled the https feature of hickory-resolver - this doesn't add any new dependencies, as tokio-rustls and h2 are in the tree already through reqwest.

Breaking Changes

Notes & open questions

There's two more protocols supported by hickory though behind non-default feature flags: Quic and H3. If there's demand, we could enable those too.

Change checklist

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.
  • All breaking changes documented.
    • List all breaking changes in the above "Breaking Changes" section.
    • Open an issue or PR on any number0 repos that are affected by this breaking change. Give guidance on how the updates should be handled or do the actual updates themselves. The major ones are:

Copy link

github-actions bot commented Sep 29, 2025

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3475/docs/iroh/

Last updated: 2025-09-30T09:13:25Z

Copy link

github-actions bot commented Sep 29, 2025

Netsim report & logs for this PR have been generated and is available at: LOGS
This report will remain available for 3 days.

Last updated for commit: 3b983cb

@n0bot n0bot bot added this to iroh Sep 29, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Sep 29, 2025
@dignifiedquire dignifiedquire added this to the v0.99.0 milestone Sep 29, 2025
Copy link
Contributor

@dignifiedquire dignifiedquire left a comment

Choose a reason for hiding this comment

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

nice

@Frando Frando force-pushed the Frando/dns-resolver-builder branch from aadafde to 8088c2a Compare September 30, 2025 08:39
@Frando Frando changed the base branch from Frando/dns-resolver-trait to main September 30, 2025 08:39
@Frando Frando enabled auto-merge September 30, 2025 08:39
@Frando Frando disabled auto-merge September 30, 2025 08:50
@Frando
Copy link
Member Author

Frando commented Sep 30, 2025

I pushed a commit that has no functional changes, but makes it more obvious in the code that if we fail to load the host system's DNS config, we fallback to ResolverConfig::google. This was so far hidden in a unwrap_or_default (ResolverConfig::default calls ResolverConfig::google). I think we should have the fact that we fallback to google's DNS servers visible in the source code, so that if we want to change it to eg. cloudflare or something else, it's obvious to spot.

@Frando Frando enabled auto-merge September 30, 2025 09:31
@Frando Frando added this pull request to the merge queue Sep 30, 2025
Merged via the queue into main with commit 1fb68ef Sep 30, 2025
53 of 54 checks passed
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in iroh Sep 30, 2025
@dignifiedquire dignifiedquire deleted the Frando/dns-resolver-builder branch September 30, 2025 12:22
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.

2 participants