79 Commits

Author SHA1 Message Date
世界 fe1f022400 dns: Fix search domain expansion
DHCP option 119/15 and resolved link domains are not rooted, so appending
them to the query name produced a non-FQDN name, failing to pack with
"domain must be fully qualified".
2026-07-25 22:58:38 +08:00
世界 58affa1c6d Add JSON schema support 2026-07-25 22:58:38 +08:00
世界 e013b424fc dns: Probe connection reuse support for TCP transports 2026-07-22 16:29:39 +08:00
世界 a9d89ab2a3 Fix TCP DNS retry 2026-07-21 15:19:37 +08:00
世界 d2e030bdca Improve network reset 2026-07-19 17:50:02 +08:00
世界 3d2461f3ba refactor: Async DNS 2026-07-19 16:37:16 +08:00
世界 e34b57c3b0 boxdd: Add insecure mode 2026-07-16 00:38:31 +08:00
世界 1541f1bd71 Fix local DNS transport on darwin 2026-07-09 11:20:31 +08:00
世界 d82164b8f9 Improve DHCP DNS server initialize
Avoid querying DHCP DNS servers on cellular networks
2026-07-09 11:20:11 +08:00
世界 debdd189ac Refactor darwin local DNS to raw mDNSResponder call 2026-07-09 11:20:10 +08:00
世界 a1b55bcfea Fix tailscale dns 2026-07-09 11:19:55 +08:00
世界 409d506d19 dns: Fix DHCP reset 2026-07-09 11:19:45 +08:00
世界 3d5d0b0ca0 Fix lint errors 2026-07-09 11:19:45 +08:00
世界 59ad93ef52 dns: Add mDNS server 2026-07-09 11:19:16 +08:00
世界 7c722b3d50 dns: Add preferred_by rule item 2026-07-09 11:19:15 +08:00
世界 a81ca0f5c5 dns: Add neighbor-based hostname resolution to local server 2026-07-09 11:19:15 +08:00
世界 23a132af2c Fix darwin cgo DNS again 2026-07-09 11:19:13 +08:00
世界 ed294d8c1e Standardize hosts path 2026-07-09 11:19:07 +08:00
世界 c1da99eede Refactor: HTTP clients, unified HTTP2/QUIC options, Apple engines 2026-07-09 11:19:07 +08:00
世界 a5bdaf5817 Fix darwin cgo DNS again 2026-07-09 11:17:55 +08:00
世界 f4c053e929 Fix darwin local DNS transport 2026-07-09 11:17:51 +08:00
世界 7067276170 Fix quic-go write leak 2026-07-09 11:07:27 +08:00
世界 761b7f4e12 Handle TUN loopback in direct outbound 2026-06-03 12:56:36 +08:00
世界 5e7fd7ad78 Fix lint errors 2026-05-13 23:39:27 +08:00
世界 383a1824c1 dns: Refactor reordered pool 2026-05-13 16:28:49 +08:00
世界 d166f0da8b dns: Fix conn pool leak 2026-05-13 16:28:49 +08:00
世界 6548c17110 dns: Fix deadline 2026-05-13 16:28:49 +08:00
世界 3312b8da50 Clean up DNS transports 2026-04-23 02:30:32 +08:00
世界 8e3176b789 Fix FakeIP returning error for unconfigured address family
Return SUCCESS with empty answers instead of an error when the
queried address family has no range configured. Reject configurations
where neither inet4_range nor inet6_range is set.
2026-04-14 14:15:20 +08:00
世界 72bc4c1f87 Fix DNS transport returning error for empty AAAA response
Closes #3925
2026-03-23 19:21:55 +08:00
世界 0889ddd001 Fix connector canceled dial cleanup 2026-03-15 17:56:37 +08:00
世界 aa495fce38 Fix local DNS transport CNAME chain broken with systemd-resolved
Replace D-Bus ResolveRecord API with direct raw DNS queries to upstream
servers obtained from systemd-resolved's per-interface link properties.
2026-03-09 20:06:34 +08:00
世界 27c5b0b1af Fix DNS exchange failure and recursion deadlock in connector
Co-authored-by: everyx <lunt.luo@gmail.com>
2026-03-06 15:31:22 +08:00
世界 ab76062a41 Fix fake-ip address allocation 2026-03-03 21:37:24 +08:00
dyhkwong 4c65fea1ac Fix IPv6 local DNS on Windows 2026-03-01 12:30:43 +08:00
世界 aa8dd6e44f Fix DNS transports 2026-01-17 05:48:41 +08:00
世界 a930356b04 Revert "Stop using DHCP on iOS and tvOS" 2026-01-17 05:47:32 +08:00
世界 fce21607bd Use a more conservative strategy for resolving with systemd-resolved for local DNS server 2026-01-17 05:46:23 +08:00
世界 ed1ee4c3a4 Update quic-go to v0.55.0 2026-01-17 05:46:13 +08:00
世界 107f92381b Add support for kTLS
Reference: https://gitlab.com/go-extension/tls
2026-01-17 05:44:42 +08:00
世界 44fafcef73 Fix resolve using resolved 2026-01-17 05:44:29 +08:00
世界 bba92146b1 Stop using DHCP on iOS and tvOS
We do not have the `com.apple.developer.networking.multicast` entitlement and are unable to obtain it for non-technical reasons.
2026-01-17 05:44:28 +08:00
世界 48f84b31d6 Improve 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`.
2026-01-17 05:44:28 +08:00
世界 1c846df903 Use resolved in local DNS server if available 2026-01-17 05:44:28 +08:00
neletor 1f03080540 Add support for ech retry configs 2026-01-17 05:44:26 +08:00
Gavin Luo fffe9fc566 Fix reset buffer in dhcp response loop
Previously, the buffer was not reset within the response loop. If a packet
handle failed or completed, the buffer retained its state. Specifically,
if `ReadPacketFrom` returned `io.ErrShortBuffer`, the error was ignored
via `continue`, but the buffer remained full. This caused the next
read attempt to immediately fail with the same error, creating a tight
busy-wait loop that consumed 100% CPU.

Validates `buffer.Reset()` is called at the start of each iteration to
ensure a clean state for 'ReadPacketFrom'.
2026-01-05 17:46:59 +08:00
世界 5658830077 Fix trailing dot handling in local DNS transport 2025-10-16 21:43:12 +08:00
世界 41b30c91d9 Improve HTTPS DNS transport 2025-10-09 23:45:23 +08:00
世界 510bf05e36 Fix UDP exchange for local/dhcp DNS servers 2025-09-13 12:26:48 +08:00
世界 5d1d1a1456 Fix TCP exchange for local/dhcp DNS servers 2025-09-12 21:58:48 +08:00