summaryrefslogtreecommitdiffhomepage
path: root/android/src
diff options
context:
space:
mode:
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()
}
}