dns intercept: port DNS-less network recovery to master

Port !997 from v1.0 onto the context-aware master recovery lifecycle. Preserve master logging and resolver APIs while adding macOS default-route DHCP detection, temporary DNS-target cleanup, and atomic recovery ownership.

Includes parser, lifecycle, failure, and concurrency regressions plus the corrected macOS QA helper. Relates to #533 and #597.
This commit is contained in:
Dev Scribe
2026-09-02 16:54:35 +07:00
committed by Cuong Manh Le
parent f96868c266
commit 80d1acdfd5
19 changed files with 1386 additions and 352 deletions
+14
View File
@@ -0,0 +1,14 @@
//go:build !darwin
package cli
// ensureInterceptDNSTarget is a no-op on non-Darwin platforms: the DNS-less
// network problem it solves is specific to macOS pf interception blocking
// IPv6 port 53 with no IPv4 fallback (issue #533). Windows intercept mode
// uses NRPT, which routes queries regardless of adapter DNS configuration.
func (p *prog) ensureInterceptDNSTarget(_ []string) {}
// removeInterceptDNSTarget is a no-op on non-Darwin platforms.
//
//lint:ignore U1000 called from Darwin-only intercept shutdown; kept for API symmetry.
func (p *prog) removeInterceptDNSTarget(_ string) {}