fix(network): trigger VPN bypass on handshake failure too
This commit is contained in:
@@ -60,11 +60,25 @@ class MainActivity : FlutterActivity() {
|
||||
}
|
||||
return mapOf(
|
||||
"hasTun" to tunNames.isNotEmpty(),
|
||||
"hasVpn" to hasVpnTransport(),
|
||||
"tunNames" to tunNames,
|
||||
"directInterfaces" to directNames,
|
||||
)
|
||||
}
|
||||
|
||||
// VPN активен, даже если tun-интерфейс не виден приложению (Android 10+).
|
||||
private fun hasVpnTransport(): Boolean {
|
||||
val cm = connectivityManager()
|
||||
for (network in cm.allNetworks) {
|
||||
val caps = cm.getNetworkCapabilities(network) ?: continue
|
||||
if (caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) return true
|
||||
if (!caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// Привязывает процесс к не-VPN сети: Wi-Fi → Ethernet → моб.
|
||||
private fun bindToNonVpnNetwork(): Map<String, Any?> {
|
||||
val cm = connectivityManager()
|
||||
|
||||
Reference in New Issue
Block a user