mirror of
https://github.com/MetaCubeX/ClashMetaForAndroid.git
synced 2026-05-09 18:11:26 +08:00
fix dns hijacking
This commit is contained in:
@@ -35,13 +35,11 @@ func InitialResolver() {
|
||||
|
||||
rawResolver := resolver.DefaultResolver
|
||||
if rawResolver == nil {
|
||||
hijackAddress = nil
|
||||
dnsHandler = nil
|
||||
return
|
||||
}
|
||||
r, ok := rawResolver.(*dns.Resolver)
|
||||
if !ok || r == nil {
|
||||
hijackAddress = nil
|
||||
dnsHandler = nil
|
||||
return
|
||||
}
|
||||
@@ -54,6 +52,10 @@ func hijackTCPDNS(conn net.Conn, endpoint *binding.Endpoint) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
if dnsHandler == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if !hijackAddress.Equal(net.IPv4zero) && !hijackAddress.Equal(net.IPv6zero) && !hijackAddress.Equal(endpoint.Target.IP) {
|
||||
return false
|
||||
}
|
||||
@@ -103,6 +105,10 @@ func hijackDNS(payload []byte, endpoint *binding.Endpoint, sender redirect.UDPSe
|
||||
return false
|
||||
}
|
||||
|
||||
if dnsHandler == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if !hijackAddress.Equal(net.IPv4zero) && !hijackAddress.Equal(net.IPv6zero) && !hijackAddress.Equal(endpoint.Target.IP) {
|
||||
return false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user