Skip to content

DNS resolver customization (DoH/DoT/plain), hickory-resolver 0.26 upgrade, and minor fixes#147

Merged
deedy5 merged 6 commits into
mainfrom
dev
May 19, 2026
Merged

DNS resolver customization (DoH/DoT/plain), hickory-resolver 0.26 upgrade, and minor fixes#147
deedy5 merged 6 commits into
mainfrom
dev

Conversation

@deedy5

@deedy5 deedy5 commented May 19, 2026

Copy link
Copy Markdown
Owner

DNS Resolver Customization

  • Adds DohResolver, DotResolver, and PlainDnsResolver backed by hickory-resolver
  • Exposes DNS resolver configuration in Python bindings via dns_resolver parameter (string or list of strings for fallback chain)
  • Supports doh://, dot://, dns://, and system URL formats
  • ChainedResolver tries resolvers in order, returning the first success

Hickory-resolver 0.25 → 0.26 Upgrade

  • Fixes NSEC3 closest-encloser proof denial-of-service (unbounded loop)
  • Migrates from removed APIs: TokioConnectionProviderTokioRuntimeProvider, NameServerConfigGroupVec<NameServerConfig>, etc.
  • Adds system-config feature flag for /etc/resolv.conf support

Fixes & Improvements

  • DoH timeout fix: wraps hickory's per-query timeout around DoH lookups to prevent indefinite hangs and enable proper ChainedResolver fallback
  • Error messages: includes full error source chain in Python connect/timeout/request exceptions and removes redundant URL tuple argument
  • Raw body fix: sends non-object Python values (strings, bytes) as raw request body
  • Rustls: removes duplicate "Browser emulation" debug log in ClientHello emission

@deedy5 deedy5 merged commit e76b1ee into main May 19, 2026
38 checks passed
@deedy5 deedy5 deleted the dev branch May 19, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant