feat: DNS-over-HTTPS (DoH) upstream forwarding #14

Merged
razvandimescu merged 3 commits from feat/doh-upstream into main 2026-03-24 06:39:58 +08:00

3 Commits

Author SHA1 Message Date
Razvan Dimescu
b2381a1e60 docs: add DoH to README — Why Numa, comparison table, roadmap
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 00:39:44 +02:00
Razvan Dimescu
a82ef1d1e5 style: cargo fmt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 00:36:00 +02:00
Razvan Dimescu
007b8593c5 feat: DNS-over-HTTPS upstream forwarding
Encrypt upstream queries via DoH — ISPs see HTTPS traffic on port 443,
not plaintext DNS on port 53. URL scheme determines transport:
https:// = DoH, bare IP = plain UDP. Falls back to Quad9 DoH when
system resolver cannot be detected.

- Upstream enum (Udp/Doh) with Display and PartialEq
- BytePacketBuffer::from_bytes constructor
- reqwest http2 feature for DoH server compatibility
- network_watch_loop guards against DoH→UDP silent downgrade
- 5 new tests (mock DoH server, HTTP errors, timeout)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 00:35:33 +02:00