Reset DefaultResolver on Android CGO builds#335
Open
madeye wants to merge 1 commit into
Open
Conversation
v2ray-core hardcodes 8.8.8.8 as the system DNS on all Android builds (v2fly/v2ray-core#572). That is only needed without CGO; with CGO it causes DNS loopback/poisoning under Android VPN protect (shadowsocks/v2ray-plugin-android#44). Upstream fixed this with a build tag in v5.52.0 (v2fly/v2ray-core#3755), which requires Go 1.25.5+. Until we can bump core, undo the override from main after dependency package inits run.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dns_android.go(//go:build android && cgo) that resetsnet.DefaultResolverafter v2ray-core's Android DNS workaround runs.Context
v2ray-core overrides
net.DefaultResolverto hardcode8.8.8.8on all Android builds (v2fly/v2ray-core#572). That is only needed without CGO. This plugin always builds withCGO_ENABLED=1, so the override is harmful.Upstream fixed it with a build-tag change in v2fly/v2ray-core#3755 (v5.52.0+), which requires Go 1.25.5+. Until core can be bumped, undo the override from
main(main package inits run after dependency package inits).Test plan
CGO_ENABLED=1