diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-21 21:38:00 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-16 12:36:00 +0000 |
| commit | f860d098dd2b096640c905424f01a0eb5d64c399 (patch) | |
| tree | d7398c6e6c819383d87ab44a55c4e8499986fe14 | |
| parent | fb5d6a7fcb0df75554431eba1720378e7b434d3f (diff) | |
| download | mullvadvpn-f860d098dd2b096640c905424f01a0eb5d64c399.tar.xz mullvadvpn-f860d098dd2b096640c905424f01a0eb5d64c399.zip | |
Close tun when old status is invalid DNS address
| -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() } } |
