add more log

This commit is contained in:
hiddify-com
2024-05-31 21:14:37 +02:00
parent d89184855d
commit dc22e75eb9
6 changed files with 71 additions and 44 deletions

View File

@@ -292,8 +292,8 @@ class BoxService(
}
}
}
override fun postServiceClose(){
//TODO:
override fun postServiceClose() {
// Not used on Android
}
private suspend fun stopAndAlert(type: Alert, message: String? = null) {

View File

@@ -1,11 +1,12 @@
package com.hiddify.hiddify.bg
import java.net.NetworkInterface
import android.net.Network
import android.os.Build
import com.hiddify.hiddify.Application
import io.nekohasekai.libbox.InterfaceUpdateListener
import java.net.NetworkInterface
object DefaultNetworkMonitor {
var defaultNetwork: Network? = null
@@ -27,6 +28,14 @@ object DefaultNetworkMonitor {
DefaultNetworkListener.stop(this)
}
suspend fun require(): Network {
val network = defaultNetwork
if (network != null) {
return network
}
return DefaultNetworkListener.get()
}
fun setListener(listener: InterfaceUpdateListener?) {
this.listener = listener
checkDefaultInterfaceUpdate(defaultNetwork)
@@ -48,11 +57,11 @@ object DefaultNetworkMonitor {
continue
}
listener.updateDefaultInterface(interfaceName, interfaceIndex)
break
}
} else {
listener.updateDefaultInterface("", -1)
}
}
}

View File

@@ -27,6 +27,7 @@ object LocalResolver : LocalDNSTransport {
@RequiresApi(Build.VERSION_CODES.Q)
override fun exchange(ctx: ExchangeContext, message: ByteArray) {
return runBlocking {
val defaultNetwork = DefaultNetworkMonitor.require()
suspendCoroutine { continuation ->
val signal = CancellationSignal()
ctx.onCancel(signal::cancel)
@@ -52,7 +53,7 @@ object LocalResolver : LocalDNSTransport {
}
}
DnsResolver.getInstance().rawQuery(
DefaultNetworkMonitor.defaultNetwork,
defaultNetwork,
message,
DnsResolver.FLAG_NO_RETRY,
Dispatchers.IO.asExecutor(),
@@ -64,8 +65,9 @@ object LocalResolver : LocalDNSTransport {
}
override fun lookup(ctx: ExchangeContext, network: String, domain: String) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
return runBlocking {
return runBlocking {
val defaultNetwork = DefaultNetworkMonitor.require()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
suspendCoroutine { continuation ->
val signal = CancellationSignal()
ctx.onCancel(signal::cancel)
@@ -99,7 +101,7 @@ object LocalResolver : LocalDNSTransport {
}
if (type != null) {
DnsResolver.getInstance().query(
DefaultNetworkMonitor.defaultNetwork,
defaultNetwork,
domain,
type,
DnsResolver.FLAG_NO_RETRY,
@@ -109,7 +111,7 @@ object LocalResolver : LocalDNSTransport {
)
} else {
DnsResolver.getInstance().query(
DefaultNetworkMonitor.defaultNetwork,
defaultNetwork,
domain,
DnsResolver.FLAG_NO_RETRY,
Dispatchers.IO.asExecutor(),
@@ -118,17 +120,15 @@ object LocalResolver : LocalDNSTransport {
)
}
}
} else {
val answer = try {
defaultNetwork.getAllByName(domain)
} catch (e: UnknownHostException) {
ctx.errorCode(RCODE_NXDOMAIN)
return@runBlocking
}
ctx.success(answer.mapNotNull { it.hostAddress }.joinToString("\n"))
}
} else {
val underlyingNetwork =
DefaultNetworkMonitor.defaultNetwork ?: error("upstream network not found")
val answer = try {
underlyingNetwork.getAllByName(domain)
} catch (e: UnknownHostException) {
ctx.errorCode(RCODE_NXDOMAIN)
return
}
ctx.success(answer.mapNotNull { it.hostAddress }.joinToString("\n"))
}
}
}