fix: check forwarding rules before recursive resolution #29

Merged
razvandimescu merged 1 commits from fix/forwarding-rules-recursive into main 2026-04-03 05:07:11 +08:00
razvandimescu commented 2026-04-03 05:02:28 +08:00 (Migrated from github.com)

Summary

  • Conditional forwarding rules (Tailscale .ts.net, VPC private zones) were only checked in the forward mode branch
  • In recursive mode, queries for private domains went to root servers → NXDOMAIN
  • Move forwarding rule check before the recursive/forward branch so it takes priority regardless of mode

Found while testing Tailscale split DNS on the HN launch day.

Test plan

  • make all passes (120 tests)
  • Recursive mode + Tailscale: dig macbook-pro-2.tailcee7cc.ts.net @127.0.0.1100.64.72.113 (FORWARD path)
  • Forward mode: google.com resolves via forward, Tailscale domain resolves via forwarding rule
  • Recursive mode without forwarding rules: google.com resolves via RECURSIVE

🤖 Generated with Claude Code

## Summary - Conditional forwarding rules (Tailscale `.ts.net`, VPC private zones) were only checked in the forward mode branch - In recursive mode, queries for private domains went to root servers → NXDOMAIN - Move forwarding rule check before the recursive/forward branch so it takes priority regardless of mode Found while testing Tailscale split DNS on the HN launch day. ## Test plan - [x] `make all` passes (120 tests) - [x] Recursive mode + Tailscale: `dig macbook-pro-2.tailcee7cc.ts.net @127.0.0.1` → `100.64.72.113` (FORWARD path) - [x] Forward mode: `google.com` resolves via forward, Tailscale domain resolves via forwarding rule - [x] Recursive mode without forwarding rules: `google.com` resolves via RECURSIVE 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.