Skip to content

Conversation

@aoracux
Copy link

@aoracux aoracux commented Dec 29, 2025

UDPTransport.open() held the mutex while DialContext could block during Wi‑Fi changes, so Close() waited on the same lock and timed out. Move UDP dialing outside the lock and explicitly close the active UDP connection in Close(), so shutdown completes even when dialing stalls

Zephyruso and others added 30 commits December 25, 2025 14:48
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`.
We do not have the `com.apple.developer.networking.multicast` entitlement and are unable to obtain it for non-technical reasons.
@nekohasekai nekohasekai force-pushed the dev-next branch 6 times, most recently from dfdd296 to 0a8b7a3 Compare January 2, 2026 11:23
@nekohasekai nekohasekai force-pushed the dev-next branch 8 times, most recently from 1bd617e to 0028b06 Compare January 12, 2026 12:44
@nekohasekai nekohasekai force-pushed the dev-next branch 6 times, most recently from 237887d to 5d67c13 Compare January 17, 2026 11:21
@nekohasekai nekohasekai force-pushed the dev-next branch 9 times, most recently from 4d60ac3 to c1dc6cb Compare February 1, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants