mirror of
https://github.com/MatsuriDayo/NekoBoxForAndroid.git
synced 2025-12-19 22:50:05 +08:00
fix local dns error
This commit is contained in:
parent
da682b1dd4
commit
5d450b798a
@ -104,11 +104,8 @@ object LocalResolverImpl : LocalResolver, LocalDNSTransport {
|
|||||||
ctx.onCancel(signal::cancel)
|
ctx.onCancel(signal::cancel)
|
||||||
val callback = object : DnsResolver.Callback<ByteArray> {
|
val callback = object : DnsResolver.Callback<ByteArray> {
|
||||||
override fun onAnswer(answer: ByteArray, rcode: Int) {
|
override fun onAnswer(answer: ByteArray, rcode: Int) {
|
||||||
if (rcode == 0) {
|
// exchange don't generate rcode error
|
||||||
ctx.rawSuccess(answer)
|
ctx.rawSuccess(answer)
|
||||||
} else {
|
|
||||||
ctx.errorCode(rcode)
|
|
||||||
}
|
|
||||||
continuation.resume(Unit)
|
continuation.resume(Unit)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,10 +188,13 @@ object LocalResolverImpl : LocalResolver, LocalDNSTransport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val underlyingNetwork =
|
|
||||||
SagerNet.underlyingNetwork ?: error("upstream network not found")
|
|
||||||
val answer = try {
|
val answer = try {
|
||||||
underlyingNetwork.getAllByName(domain)
|
val u = SagerNet.underlyingNetwork
|
||||||
|
if (u != null) {
|
||||||
|
u.getAllByName(domain)
|
||||||
|
} else {
|
||||||
|
InetAddress.getAllByName(domain)
|
||||||
|
}
|
||||||
} catch (e: UnknownHostException) {
|
} catch (e: UnknownHostException) {
|
||||||
ctx.errorCode(RCODE_NXDOMAIN)
|
ctx.errorCode(RCODE_NXDOMAIN)
|
||||||
return
|
return
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user