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.kt13
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)
}