Commit graph

69 commits

Author SHA1 Message Date
世界
6b490f5cf4
Fix crash on Apple platforms caused by concurrent libresolv calls 2026-06-08 08:51:52 +08:00
世界
3d50303ec1
Fix tailscale dns 2026-06-08 08:51:51 +08:00
世界
77282d2efe
dns: Fix DHCP reset 2026-06-08 08:51:49 +08:00
世界
b19d4a92e2
Fix lint errors 2026-06-08 08:51:48 +08:00
世界
b9c596f9e3
dns: Add mDNS server 2026-06-08 08:51:46 +08:00
世界
db08f3f699
dns: Add preferred_by rule item 2026-06-08 08:51:46 +08:00
世界
f842580f33
dns: Add neighbor-based hostname resolution to local server 2026-06-08 08:51:46 +08:00
世界
4163bd7c49
Fix darwin cgo DNS again 2026-06-08 08:51:44 +08:00
世界
ac745ed9d8
Standardize hosts path 2026-06-08 08:51:40 +08:00
世界
ab2a90d5e7
Refactor: HTTP clients, unified HTTP2/QUIC options, Apple engines 2026-06-08 08:51:40 +08:00
世界
df5a3e5fec
Fix darwin cgo DNS again 2026-06-08 08:51:39 +08:00
世界
fa3d6dee57
Fix darwin local DNS transport 2026-06-08 08:51:37 +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
世界
e81a76fdf9
Fix DNS exchange 2025-09-12 18:05:02 +08:00
世界
e42b818c2a
Fix dhcp fetch 2025-09-12 11:03:13 +08:00
世界
c331ee3d5c
Fix timeout check 2025-09-10 22:42:40 +08:00
世界
b14cecaeb2
Fix DNS packet size 2025-09-08 09:12:30 +08:00
世界
2edfed7d91
Improve DHCP DNS server 2025-09-02 17:55:26 +08:00
世界
378e39f70c
Update golangci-lint to v2 2025-08-13 23:37:40 +08:00
Youfu Zhang
fba802effd
Fix libresolv initialization
Fixes: 9533031891 ("Update libresolv usage")

Signed-off-by: Youfu Zhang <zhangyoufu@gmail.com>
2025-08-10 20:06:28 +08:00
世界
5533094984
Fix UDP DNS buffer size 2025-07-18 12:20:33 +08:00
世界
c0dd4a3f07
Fix DNS reject check 2025-07-08 13:14:46 +08:00
世界
455e5de74d
Fixed DoH server recover from conn freezes 2025-07-08 13:14:45 +08:00