diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-01-04 22:07:11 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-04-12 13:19:37 +0000 |
| commit | 5cb56b98fcb259a00f7c212ece231ea468e0a169 (patch) | |
| tree | 9052ec65a171b2ee1acc31c0cf682b6efe60878f | |
| parent | d54186c61f7534e7658662310af25ba5ca079fbd (diff) | |
| download | mullvadvpn-5cb56b98fcb259a00f7c212ece231ea468e0a169.tar.xz mullvadvpn-5cb56b98fcb259a00f7c212ece231ea468e0a169.zip | |
Move `ConnectionProxy` into `ServiceEndpoint`
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt | 20 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt | 2 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt (renamed from android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt) | 7 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt | 5 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/tunnelstate/TunnelStateUpdater.kt | 2 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt | 2 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt | 2 |
7 files changed, 20 insertions, 20 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt index d287a811f1..a12b7c5f94 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadVpnService.kt @@ -50,6 +50,9 @@ class MullvadVpnService : TalpidVpnService() { private val binder = LocalBinder() private val serviceNotifier = EventNotifier<ServiceInstance?>(null) + private val connectionProxy + get() = endpoint.connectionProxy + private var state = State.Running private var setUpDaemonJob: Job? = null @@ -76,16 +79,13 @@ class MullvadVpnService : TalpidVpnService() { private lateinit var keyguardManager: KeyguardManager private lateinit var notificationManager: ForegroundNotificationManager private lateinit var tunnelStateUpdater: TunnelStateUpdater - private lateinit var vpnPermission: VpnPermission private var pendingAction by observable<PendingAction?>(null) { _, _, _ -> - val connectionProxy = instance?.connectionProxy - // The service instance awaits the split tunneling initialization, which also starts the // endpoint. So if the instance is not null, the endpoint has certainly been initialized. - if (connectionProxy != null) { + if (instance != null) { endpoint.settingsListener.settings?.let { settings -> - handlePendingAction(connectionProxy, settings) + handlePendingAction(settings) } } } @@ -110,7 +110,8 @@ class MullvadVpnService : TalpidVpnService() { Looper.getMainLooper(), daemonInstance.intermittentDaemon, connectivityListener, - SplitTunnelingPersistence(this) + SplitTunnelingPersistence(this), + VpnPermission(this) ) notificationManager = @@ -126,8 +127,6 @@ class MullvadVpnService : TalpidVpnService() { start() } - - vpnPermission = VpnPermission(this) } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { @@ -234,7 +233,6 @@ class MullvadVpnService : TalpidVpnService() { } private suspend fun setUpInstance(daemon: MullvadDaemon, settings: Settings) { - val connectionProxy = ConnectionProxy(vpnPermission, daemonInstance.intermittentDaemon) val customDns = CustomDns(daemon, endpoint.settingsListener) endpoint.splitTunneling.onChange.subscribe(this@MullvadVpnService) { excludedApps -> @@ -243,7 +241,7 @@ class MullvadVpnService : TalpidVpnService() { connectionProxy.reconnect() } - handlePendingAction(connectionProxy, settings) + handlePendingAction(settings) endpoint.locationInfoCache.stateEvents = connectionProxy.onStateChange @@ -280,7 +278,7 @@ class MullvadVpnService : TalpidVpnService() { } } - private fun handlePendingAction(connectionProxy: ConnectionProxy, settings: Settings) { + private fun handlePendingAction(settings: Settings) { when (pendingAction) { PendingAction.Connect -> { if (settings.accountToken != null) { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt index f97d8c870f..e3338d587f 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ServiceInstance.kt @@ -1,6 +1,7 @@ package net.mullvad.mullvadvpn.service import android.os.Messenger +import net.mullvad.mullvadvpn.service.endpoint.ConnectionProxy import net.mullvad.mullvadvpn.util.Intermittent class ServiceInstance( @@ -11,7 +12,6 @@ class ServiceInstance( val customDns: CustomDns, ) { fun onDestroy() { - connectionProxy.onDestroy() customDns.onDestroy() } } diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt index aedacc8667..26456617f2 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ConnectionProxy.kt @@ -1,4 +1,4 @@ -package net.mullvad.mullvadvpn.service +package net.mullvad.mullvadvpn.service.endpoint import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -10,15 +10,13 @@ import kotlinx.coroutines.channels.sendBlocking import kotlinx.coroutines.delay import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.model.TunnelState -import net.mullvad.mullvadvpn.service.endpoint.VpnPermission import net.mullvad.mullvadvpn.ui.MainActivity -import net.mullvad.mullvadvpn.util.Intermittent import net.mullvad.talpid.tunnel.ActionAfterDisconnect import net.mullvad.talpid.util.EventNotifier val ANTICIPATED_STATE_TIMEOUT_MS = 1500L -class ConnectionProxy(val vpnPermission: VpnPermission, val daemon: Intermittent<MullvadDaemon>) { +class ConnectionProxy(val vpnPermission: VpnPermission, endpoint: ServiceEndpoint) { private enum class Command { CONNECT, RECONNECT, @@ -26,6 +24,7 @@ class ConnectionProxy(val vpnPermission: VpnPermission, val daemon: Intermittent } private val commandChannel = spawnActor() + private val daemon = endpoint.intermittentDaemon var mainActivity: MainActivity? = null diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt index 8e11e1e1cd..69c5b23b60 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/endpoint/ServiceEndpoint.kt @@ -22,7 +22,8 @@ class ServiceEndpoint( looper: Looper, internal val intermittentDaemon: Intermittent<MullvadDaemon>, val connectivityListener: ConnectivityListener, - splitTunnelingPersistence: SplitTunnelingPersistence + splitTunnelingPersistence: SplitTunnelingPersistence, + vpnPermission: VpnPermission ) { private val listeners = mutableSetOf<Messenger>() private val registrationQueue: SendChannel<Messenger> = startRegistrator() @@ -33,6 +34,7 @@ class ServiceEndpoint( val messenger = Messenger(dispatcher) + val connectionProxy = ConnectionProxy(vpnPermission, this) val settingsListener = SettingsListener(this) val accountCache = AccountCache(this) @@ -51,6 +53,7 @@ class ServiceEndpoint( registrationQueue.close() accountCache.onDestroy() + connectionProxy.onDestroy() keyStatusListener.onDestroy() locationInfoCache.onDestroy() settingsListener.onDestroy() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/tunnelstate/TunnelStateUpdater.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/tunnelstate/TunnelStateUpdater.kt index 638a30d333..53c12b456c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/tunnelstate/TunnelStateUpdater.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/tunnelstate/TunnelStateUpdater.kt @@ -1,8 +1,8 @@ package net.mullvad.mullvadvpn.service.tunnelstate import android.content.Context -import net.mullvad.mullvadvpn.service.ConnectionProxy import net.mullvad.mullvadvpn.service.ServiceInstance +import net.mullvad.mullvadvpn.service.endpoint.ConnectionProxy import net.mullvad.talpid.util.EventNotifier class TunnelStateUpdater(context: Context, serviceNotifier: EventNotifier<ServiceInstance?>) { diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt index 0cb33c3334..0383500aa9 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/ServiceDependentFragment.kt @@ -7,9 +7,9 @@ import android.view.ViewGroup import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.dataproxy.AppVersionInfoCache import net.mullvad.mullvadvpn.dataproxy.RelayListListener -import net.mullvad.mullvadvpn.service.ConnectionProxy import net.mullvad.mullvadvpn.service.CustomDns import net.mullvad.mullvadvpn.service.MullvadDaemon +import net.mullvad.mullvadvpn.service.endpoint.ConnectionProxy import net.mullvad.mullvadvpn.ui.serviceconnection.AccountCache import net.mullvad.mullvadvpn.ui.serviceconnection.KeyStatusListener import net.mullvad.mullvadvpn.ui.serviceconnection.LocationInfoCache diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt index 80ae9da5e4..1ec6ce7da5 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/notification/TunnelStateNotification.kt @@ -3,7 +3,7 @@ package net.mullvad.mullvadvpn.ui.notification import android.content.Context import net.mullvad.mullvadvpn.R import net.mullvad.mullvadvpn.model.TunnelState -import net.mullvad.mullvadvpn.service.ConnectionProxy +import net.mullvad.mullvadvpn.service.endpoint.ConnectionProxy import net.mullvad.talpid.tunnel.ActionAfterDisconnect import net.mullvad.talpid.tunnel.ErrorState import net.mullvad.talpid.tunnel.ErrorStateCause |
