diff options
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt index 4a9b16b16a..2d56ce79e7 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt @@ -16,6 +16,9 @@ open class TalpidVpnService : VpnService() { } } + private val tunIsOpen + get() = activeTunStatus?.isOpen ?: false + private var currentTunConfig = defaultTunConfig() private var tunIsStale = false @@ -35,8 +38,8 @@ open class TalpidVpnService : VpnService() { synchronized(this) { val tunStatus = activeTunStatus - if (config == currentTunConfig && tunStatus != null && !tunIsStale) { - return tunStatus + if (config == currentTunConfig && tunIsOpen && !tunIsStale) { + return tunStatus!! } else { val newTunStatus = createTun(config) @@ -57,17 +60,17 @@ open class TalpidVpnService : VpnService() { fun createTunIfClosed(): Boolean { synchronized(this) { - if (activeTunStatus !is CreateTunResult.Success) { + if (!tunIsOpen) { activeTunStatus = createTun(currentTunConfig) } - return activeTunStatus is CreateTunResult.Success + return tunIsOpen } } fun recreateTunIfOpen(config: TunConfig) { synchronized(this) { - if (activeTunStatus is CreateTunResult.Success) { + if (tunIsOpen) { currentTunConfig = config activeTunStatus = createTun(config) } |
