diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-17 19:42:03 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-06-18 17:25:16 +0000 |
| commit | f67fc9f071ad27c0729d027c6cfd0133c4f842ba (patch) | |
| tree | d1524815ab4f13aef8062e5fa045be87a9a21e1b /android | |
| parent | bb0e2faedc2cec86c34aa6d0552c683a05941c32 (diff) | |
| download | mullvadvpn-f67fc9f071ad27c0729d027c6cfd0133c4f842ba.tar.xz mullvadvpn-f67fc9f071ad27c0729d027c6cfd0133c4f842ba.zip | |
Wait for previous VPN connection to finish
Diffstat (limited to 'android')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt index 8785c94230..e728752461 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt @@ -18,6 +18,7 @@ import android.os.IBinder import net.mullvad.mullvadvpn.model.TunConfig class MullvadVpnService : VpnService() { + private val connectivityListener = ConnectivityListener() private val created = CompletableDeferred<Unit>() private val binder = LocalBinder() @@ -27,6 +28,7 @@ class MullvadVpnService : VpnService() { override fun onCreate() { created.complete(Unit) + connectivityListener.register(this) } override fun onBind(intent: Intent): IBinder { @@ -34,11 +36,16 @@ class MullvadVpnService : VpnService() { } override fun onDestroy() { + connectivityListener.unregister(this) asyncDaemon.cancel() created.cancel() } fun createTun(config: TunConfig): Int { + runBlocking { + connectivityListener.vpnDisconnected.await() + } + val builder = Builder().apply { for (address in config.addresses) { addAddress(address, 32) |
