sing-box/dns
世界 fa65ddd158
Fix local DNS server on darwin
We mistakenly believed that `libresolv`'s `search` function worked correctly in NetworkExtension, but it seems only `getaddrinfo` does.

This commit changes the behavior of the `local` DNS server in NetworkExtension to prefer DHCP, falling back to `getaddrinfo` if DHCP servers are unavailable.

It's worth noting that `prefer_go` does not disable DHCP since it respects Dial Fields, but `getaddrinfo` does the opposite. The new behavior only applies to NetworkExtension, not to all scenarios (primarily command-line binaries) as it did previously.

In addition, this commit also improves the DHCP DNS server to use the same robust query logic as `local`.
2025-09-09 18:03:43 +08:00
..
transport Fix local DNS server on darwin 2025-09-09 18:03:43 +08:00
client.go Treat requests with OPT extra but no options as simple requests 2025-09-08 09:12:30 +08:00
client_log.go refactor: DNS 2025-07-08 13:12:14 +08:00
client_truncate.go refactor: DNS 2025-07-08 13:12:14 +08:00
extension_edns0_subnet.go Fix set edns0 client subnet 2025-07-08 13:14:38 +08:00
rcode.go Add fallback local DNS server for iOS 2025-07-08 13:12:18 +08:00
router.go Fix failed DNS responses being incorrectly rejected 2025-08-19 11:14:46 +08:00
transport_adapter.go refactor: Outbound domain resolver 2025-07-08 13:12:14 +08:00
transport_dialer.go Fix DNS packet size 2025-09-08 09:12:30 +08:00
transport_manager.go Use libresolv in local DNS server on darwin 2025-09-09 18:03:42 +08:00
transport_registry.go refactor: DNS 2025-07-08 13:12:14 +08:00