diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt | 10 |
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() } } |
