Skip to content

Add opt-in UDP DNS doctor and enforce UDP resolver deadlines - #52

Merged
cppla merged 1 commit into
mainfrom
codex/udp-diagnostics
Oct 3, 2026
Merged

cppla merged 1 commit into
mainfrom
codex/udp-diagnostics

Conversation

@cppla

@cppla cppla commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add explicit doctor --probe udp-dns --target IP:port --dns-name name with one classic A/IN query, no EDNS/retries/TCP fallback, and a whole-exchange timeout. Existing default TCP probe remains unchanged.
  • Require a matching, complete <=512-byte NOERROR response before reporting transport/DNS metadata; redact probe inputs, answers and raw causes. Reject unsupported TLS/H2 locally. NOERROR/NODATA proves an exchange, not resolution, DNSSEC or general DNS compatibility.
  • Reject canceled/late successful custom UDP resolution before native UDP delivery or H3 target admission while preserving resolver errors and healthy association reuse.
  • Document source-build-only availability; no protocol/default, dependency pin, version, release or deployment changes.

Validation

  • Frozen old-source race controls reproduced late payload delivery on both real loopback native QUIC/H3 paths; later healthy same-association replies completed. Separately confirmed new CLI flags were previously absent.
  • Independently reproduced/fixed mapped-zone normalization rejection during review.
  • Final focused Go1.25.13 race x5, Go1.27.1 race x3, isolated Linux ARM64 Docker x3: all 10 tops / 201 terminal leaves per repetition passed, no skips. Includes real authenticated DNS, strict framing/compression controls, canceled blocked Send/Receive joins, privacy, config/CLI precedence and unchanged TCP behavior.
  • Full make check and make race: 15 test-bearing Go packages each; 49 Python release recipe tests passed. Built CLI help and unsupported-mode exit checked.
  • Docker source/binary hashes stayed fixed and only the owned test container was removed. No remote-machine validation or formal traffic comparison is claimed.

Copilot AI balanced review requested due to automatic review settings October 3, 2026 02:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@cppla
cppla merged commit b92b22a into main Oct 3, 2026
14 checks passed
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.

2 participants