summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-24 20:32:06 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-27 10:59:46 +0000
commit7c0a1b1c97c94751022173ebf99da663aef89e80 (patch)
treea0538e928f5f9f6be4415dbd4f1e20b6bceee972
parentddfcfa3f536a0227653189ae402f17190c1a2ee4 (diff)
downloadmullvadvpn-7c0a1b1c97c94751022173ebf99da663aef89e80.tar.xz
mullvadvpn-7c0a1b1c97c94751022173ebf99da663aef89e80.zip
Auto-generate Wireguard key in `ConnectFragment`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt12
1 files changed, 12 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
index 11bfabe912..58e7ef0ed1 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectFragment.kt
@@ -26,6 +26,7 @@ class ConnectFragment : Fragment() {
private lateinit var daemon: Deferred<MullvadDaemon>
private var attachListenerJob: Job? = null
+ private var generateWireguardKeyJob: Job? = null
private var updateViewJob: Job? = null
override fun onAttach(context: Context) {
@@ -57,6 +58,7 @@ class ConnectFragment : Fragment() {
}
attachListenerJob = attachListener()
+ generateWireguardKeyJob = generateWireguardKey()
return view
}
@@ -65,6 +67,7 @@ class ConnectFragment : Fragment() {
override fun onDestroyView() {
attachListenerJob?.cancel()
detachListener()
+ generateWireguardKeyJob?.cancel()
updateViewJob?.cancel()
super.onDestroyView()
}
@@ -77,6 +80,15 @@ class ConnectFragment : Fragment() {
daemon.await().onTunnelStateChange = null
}
+ private fun generateWireguardKey() = GlobalScope.launch(Dispatchers.Default) {
+ val daemon = this@ConnectFragment.daemon.await()
+ val key = daemon.getWireguardKey()
+
+ if (key == null) {
+ daemon.generateWireguardKey()
+ }
+ }
+
private fun connect() = GlobalScope.launch(Dispatchers.Default) {
daemon.await().connect()
}