summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-21 21:38:00 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-16 12:36:00 +0000
commitf860d098dd2b096640c905424f01a0eb5d64c399 (patch)
treed7398c6e6c819383d87ab44a55c4e8499986fe14 /android/src
parentfb5d6a7fcb0df75554431eba1720378e7b434d3f (diff)
downloadmullvadvpn-f860d098dd2b096640c905424f01a0eb5d64c399.tar.xz
mullvadvpn-f860d098dd2b096640c905424f01a0eb5d64c399.zip
Close tun when old status is invalid DNS address
Diffstat (limited to 'android/src')
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt10
1 files changed, 8 insertions, 2 deletions
diff --git a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt
index 2d56ce79e7..419c8a0e68 100644
--- a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt
+++ b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt
@@ -11,8 +11,14 @@ import net.mullvad.talpid.tun_provider.TunConfig
open class TalpidVpnService : VpnService() {
private var activeTunStatus by observable<CreateTunResult?>(null) { _, oldTunStatus, _ ->
- if (oldTunStatus is CreateTunResult.Success) {
- ParcelFileDescriptor.adoptFd(oldTunStatus.tunFd).close()
+ val oldTunFd = when (oldTunStatus) {
+ is CreateTunResult.Success -> oldTunStatus.tunFd
+ is CreateTunResult.InvalidDnsServers -> oldTunStatus.tunFd
+ else -> null
+ }
+
+ if (oldTunFd != null) {
+ ParcelFileDescriptor.adoptFd(oldTunFd).close()
}
}