feat: Introduce Domain Resolve Strategy #181
Open
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.
Current Problem
Currently, Wireproxy resolves domains by randomly selecting an IP address from the DNS results, without differentiating between A (IPv4) and AAAA (IPv6) records. This behavior may cause issues in certain scenarios.
For instance, some websites, such as Google, are sensitive to the request's source IP address. Wireproxy does not prioritize IPv4 or IPv6 address, which can cause the source IP address to switch between the interface's IPv4 and IPv6 address during a single session. This may trigger security checks.
Solution
This PR introduces a configurable DNS resolution strategy to give users control over this behavior.
ipv4: Prioritize A records.ipv6: Prioritize AAAA records .auto(Default): If the WireGuard interface has IPv4 address only, it's equivalent toipv4, otherwise it's equivalent toipv6.This PR also corrects indentation in some files as a minor cleanup,