Skip to content

Conversation

@BeautyyuYanli
Copy link

@BeautyyuYanli BeautyyuYanli commented Nov 7, 2025

This PR introduces a new selection strategy for URLTest outbound groups. The changes add support for two selection modes (min_latency and first_available).

Currently, the URLTest group select the min latency outbound. In my cases, the quailty of outbounds is not only related to the latency, but also other aspects. The outbounds' priority is alreay sorted when defined them in the config file as an array, so the task is to check their health periodically and choose the first available one.

What changes in this PR

  • Added a new select_mode field to URLTestOutboundOptions in option/group.go, along with the URLTestMode type and validation logic.
  • Refactored the selection logic in protocol/group/urltest.go to support both min_latency and first_available strategies.
  • Updated docs/configuration/outbound/urltest.md
  • Propagated the select_mode option through constructors and struct fields.
  • Simplified import aliasing in protocol/group/urltest.go for clarity.

Zephyruso and others added 30 commits November 4, 2025 21:31
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 11 times, most recently from b58d0a0 to 4e73574 Compare December 25, 2025 08:43
@nekohasekai nekohasekai force-pushed the dev-next branch 14 times, most recently from dfdd296 to 0a8b7a3 Compare January 2, 2026 11:23
@nekohasekai nekohasekai force-pushed the dev-next branch 5 times, most recently from 9583e25 to 275d102 Compare January 9, 2026 14:52
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