Commit 28193596 authored by Mygod's avatar Mygod Committed by Max Lv

Fix local_dns_path blocking

parent 347d00fb
...@@ -94,13 +94,7 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { ...@@ -94,13 +94,7 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface {
launch { launch {
socket.use { socket.use {
val input = DataInputStream(socket.inputStream) val input = DataInputStream(socket.inputStream)
while (true) { val query = ByteArray(input.readUnsignedShort())
val length = try {
input.readUnsignedShort()
} catch (_: EOFException) {
break
}
val query = ByteArray(length)
input.read(query) input.read(query)
try { try {
DnsResolverCompat.resolveRaw(underlyingNetwork ?: throw IOException("no network"), query) DnsResolverCompat.resolveRaw(underlyingNetwork ?: throw IOException("no network"), query)
...@@ -119,7 +113,10 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { ...@@ -119,7 +113,10 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface {
printLog(e) printLog(e)
null null
} }
}?.let { response -> socket.outputStream.write(response) } }?.let { response ->
val output = DataOutputStream(socket.outputStream)
output.writeShort(response.size)
output.write(response)
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment