mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-06-19 14:48:03 +03:00
Refine DNS strategies
This commit is contained in:
24
app/dns/options.go
Normal file
24
app/dns/options.go
Normal file
@ -0,0 +1,24 @@
|
||||
package dns
|
||||
|
||||
import "github.com/xtls/xray-core/features/dns"
|
||||
|
||||
type Option interface {
|
||||
queryIPv4() bool
|
||||
queryIPv6() bool
|
||||
queryIP() bool
|
||||
queryFake() bool
|
||||
canDoQuery(c *Client) bool
|
||||
}
|
||||
|
||||
func isIPQuery(o dns.IPOption) bool {
|
||||
return o.IPv4Enable || o.IPv6Enable
|
||||
}
|
||||
|
||||
func canQueryOnClient(o dns.IPOption, c *Client) bool {
|
||||
isIPClient := !(c.Name() == FakeDNSName)
|
||||
return isIPClient && isIPQuery(o)
|
||||
}
|
||||
|
||||
func isQuery(o dns.IPOption) bool {
|
||||
return !(o.IPv4Enable || o.IPv6Enable || o.FakeEnable)
|
||||
}
|
Reference in New Issue
Block a user