fix local dns error

This commit is contained in:
arm64v8a 2023-07-02 10:36:19 +09:00
parent da682b1dd4
commit 5d450b798a

View File

@ -104,11 +104,8 @@ object LocalResolverImpl : LocalResolver, LocalDNSTransport {
ctx.onCancel(signal::cancel)
val callback = object : DnsResolver.Callback<ByteArray> {
override fun onAnswer(answer: ByteArray, rcode: Int) {
if (rcode == 0) {
// exchange don't generate rcode error
ctx.rawSuccess(answer)
} else {
ctx.errorCode(rcode)
}
continuation.resume(Unit)
}
@ -191,10 +188,13 @@ object LocalResolverImpl : LocalResolver, LocalDNSTransport {
}
}
} else {
val underlyingNetwork =
SagerNet.underlyingNetwork ?: error("upstream network not found")
val answer = try {
underlyingNetwork.getAllByName(domain)
val u = SagerNet.underlyingNetwork
if (u != null) {
u.getAllByName(domain)
} else {
InetAddress.getAllByName(domain)
}
} catch (e: UnknownHostException) {
ctx.errorCode(RCODE_NXDOMAIN)
return