diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-21 14:27:04 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-21 14:27:04 -0300 |
| commit | fd45f7d3edd17bbe514710be8f7317c7524d9f41 (patch) | |
| tree | 50e56943dac9bd5b78da848875a9beff4ac57ae0 /android | |
| parent | 73a47f517a0d85efd80be5c1cba1299856910665 (diff) | |
| parent | f66f39b9b29421b5fd02605f07b585ef3440c3b4 (diff) | |
| download | mullvadvpn-fd45f7d3edd17bbe514710be8f7317c7524d9f41.tar.xz mullvadvpn-fd45f7d3edd17bbe514710be8f7317c7524d9f41.zip | |
Merge branch 'talpid-java-package'
Diffstat (limited to 'android')
19 files changed, 64 insertions, 54 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt index b778f15774..ae731b4161 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectActionButton.kt @@ -2,8 +2,8 @@ package net.mullvad.mullvadvpn import android.view.View import android.widget.Button -import net.mullvad.mullvadvpn.model.ActionAfterDisconnect import net.mullvad.mullvadvpn.model.TunnelState +import net.mullvad.talpid.tunnel.ActionAfterDisconnect class ConnectActionButton(val parentView: View) { private val button: Button = parentView.findViewById(R.id.action_button) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt index a56852bc59..17f44a64da 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ConnectionStatus.kt @@ -3,8 +3,8 @@ package net.mullvad.mullvadvpn import android.content.res.Resources import android.view.View import android.widget.TextView -import net.mullvad.mullvadvpn.model.ActionAfterDisconnect import net.mullvad.mullvadvpn.model.TunnelState +import net.mullvad.talpid.tunnel.ActionAfterDisconnect class ConnectionStatus(val parentView: View, val resources: Resources) { private val spinner: View = parentView.findViewById(R.id.connecting_spinner) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt index d317274f09..c99d8d7a0d 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ForegroundNotificationManager.kt @@ -12,8 +12,8 @@ import android.content.IntentFilter import android.os.Build import android.support.v4.app.NotificationCompat import net.mullvad.mullvadvpn.dataproxy.ConnectionProxy -import net.mullvad.mullvadvpn.model.ActionAfterDisconnect import net.mullvad.mullvadvpn.model.TunnelState +import net.mullvad.talpid.tunnel.ActionAfterDisconnect val CHANNEL_ID = "vpn_tunnel_status" val FOREGROUND_NOTIFICATION_ID: Int = 1 diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/LocationInfo.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/LocationInfo.kt index 113b416195..9278bb315f 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/LocationInfo.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/LocationInfo.kt @@ -3,10 +3,10 @@ package net.mullvad.mullvadvpn import android.content.Context import android.view.View import android.widget.TextView -import net.mullvad.mullvadvpn.model.Endpoint import net.mullvad.mullvadvpn.model.GeoIpLocation -import net.mullvad.mullvadvpn.model.TransportProtocol import net.mullvad.mullvadvpn.model.TunnelState +import net.mullvad.talpid.net.Endpoint +import net.mullvad.talpid.net.TransportProtocol class LocationInfo(val parentView: View, val context: Context) { private val country: TextView = parentView.findViewById(R.id.country) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt index 388e4c0a5d..67fe711a6c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadVpnService.kt @@ -1,7 +1,6 @@ package net.mullvad.mullvadvpn import android.content.Intent -import android.net.VpnService import android.os.Binder import android.os.IBinder import kotlinx.coroutines.CompletableDeferred @@ -11,9 +10,9 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.async import kotlinx.coroutines.runBlocking import net.mullvad.mullvadvpn.dataproxy.ConnectionProxy -import net.mullvad.mullvadvpn.model.TunConfig +import net.mullvad.talpid.TalpidVpnService -class MullvadVpnService : VpnService() { +class MullvadVpnService : TalpidVpnService() { private val binder = LocalBinder() private val created = CompletableDeferred<Unit>() @@ -50,32 +49,6 @@ class MullvadVpnService : VpnService() { created.cancel() } - fun createTun(config: TunConfig): Int { - val builder = Builder().apply { - for (address in config.addresses) { - addAddress(address, 32) - } - - for (dnsServer in config.dnsServers) { - addDnsServer(dnsServer) - } - - for (route in config.routes) { - addRoute(route.address, route.prefixLength.toInt()) - } - - setMtu(config.mtu) - } - - val vpnInterface = builder.establish() - - return vpnInterface.detachFd() - } - - fun bypass(socket: Int): Boolean { - return protect(socket) - } - inner class LocalBinder : Binder() { val daemon get() = this@MullvadVpnService.daemon diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt index 1a3d7afb43..352fe4dd71 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/NotificationBanner.kt @@ -13,12 +13,12 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.dataproxy.AppVersionInfoCache import net.mullvad.mullvadvpn.dataproxy.WwwAuthTokenRetriever -import net.mullvad.mullvadvpn.model.ActionAfterDisconnect -import net.mullvad.mullvadvpn.model.BlockReason import net.mullvad.mullvadvpn.model.KeygenEvent import net.mullvad.mullvadvpn.model.KeygenFailure -import net.mullvad.mullvadvpn.model.ParameterGenerationError import net.mullvad.mullvadvpn.model.TunnelState +import net.mullvad.talpid.tunnel.ActionAfterDisconnect +import net.mullvad.talpid.tunnel.BlockReason +import net.mullvad.talpid.tunnel.ParameterGenerationError class NotificationBanner( val parentView: View, diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt index 89a79ba839..f6561e4da1 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/SwitchLocationButton.kt @@ -10,9 +10,9 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job import kotlinx.coroutines.launch -import net.mullvad.mullvadvpn.model.ActionAfterDisconnect import net.mullvad.mullvadvpn.model.TunnelState import net.mullvad.mullvadvpn.relaylist.RelayItem +import net.mullvad.talpid.tunnel.ActionAfterDisconnect class SwitchLocationButton(val parentView: View, val resources: Resources) { private val button: Button = parentView.findViewById(R.id.switch_location) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt index c26a5bb5e6..06c594ed1c 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/ConnectionProxy.kt @@ -12,9 +12,9 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.MainActivity import net.mullvad.mullvadvpn.MullvadDaemon -import net.mullvad.mullvadvpn.model.ActionAfterDisconnect import net.mullvad.mullvadvpn.model.TunnelState import net.mullvad.mullvadvpn.util.EventNotifier +import net.mullvad.talpid.tunnel.ActionAfterDisconnect val ANTICIPATED_STATE_TIMEOUT_MS = 1500L diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt index e1082d81bc..94444c5d46 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/LocationInfoCache.kt @@ -7,12 +7,12 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.async import kotlinx.coroutines.launch import net.mullvad.mullvadvpn.MullvadDaemon -import net.mullvad.mullvadvpn.model.ActionAfterDisconnect import net.mullvad.mullvadvpn.model.GeoIpLocation import net.mullvad.mullvadvpn.model.TunnelState import net.mullvad.mullvadvpn.relaylist.Relay import net.mullvad.mullvadvpn.relaylist.RelayCity import net.mullvad.mullvadvpn.relaylist.RelayCountry +import net.mullvad.talpid.tunnel.ActionAfterDisconnect class LocationInfoCache( val daemon: Deferred<MullvadDaemon>, diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt index 33a40f7196..040c4997c9 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelState.kt @@ -1,5 +1,9 @@ package net.mullvad.mullvadvpn.model +import net.mullvad.talpid.net.TunnelEndpoint +import net.mullvad.talpid.tunnel.ActionAfterDisconnect +import net.mullvad.talpid.tunnel.BlockReason + sealed class TunnelState() { class Disconnected() : TunnelState() class Connecting(val endpoint: TunnelEndpoint?, val location: GeoIpLocation?) : TunnelState() diff --git a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt new file mode 100644 index 0000000000..96de4082cc --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt @@ -0,0 +1,32 @@ +package net.mullvad.talpid + +import android.net.VpnService +import net.mullvad.talpid.tun_provider.TunConfig + +open class TalpidVpnService : VpnService() { + fun createTun(config: TunConfig): Int { + val builder = Builder().apply { + for (address in config.addresses) { + addAddress(address, 32) + } + + for (dnsServer in config.dnsServers) { + addDnsServer(dnsServer) + } + + for (route in config.routes) { + addRoute(route.address, route.prefixLength.toInt()) + } + + setMtu(config.mtu) + } + + val vpnInterface = builder.establish() + + return vpnInterface.detachFd() + } + + fun bypass(socket: Int): Boolean { + return protect(socket) + } +} diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/Endpoint.kt b/android/src/main/kotlin/net/mullvad/talpid/net/Endpoint.kt index bf1ca2cad4..7baeb66161 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/Endpoint.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/net/Endpoint.kt @@ -1,4 +1,4 @@ -package net.mullvad.mullvadvpn.model +package net.mullvad.talpid.net import java.net.InetSocketAddress diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TransportProtocol.kt b/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt index 185461cda7..d4372f54ed 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TransportProtocol.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/net/TransportProtocol.kt @@ -1,4 +1,4 @@ -package net.mullvad.mullvadvpn.model +package net.mullvad.talpid.net sealed class TransportProtocol { class Tcp : TransportProtocol() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelEndpoint.kt b/android/src/main/kotlin/net/mullvad/talpid/net/TunnelEndpoint.kt index f064218215..138ab57cc6 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelEndpoint.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/net/TunnelEndpoint.kt @@ -1,3 +1,3 @@ -package net.mullvad.mullvadvpn.model +package net.mullvad.talpid.net data class TunnelEndpoint(val endpoint: Endpoint) diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/InetNetwork.kt b/android/src/main/kotlin/net/mullvad/talpid/tun_provider/InetNetwork.kt index eb3030880f..9b133d352b 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/InetNetwork.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/tun_provider/InetNetwork.kt @@ -1,4 +1,4 @@ -package net.mullvad.mullvadvpn.model +package net.mullvad.talpid.tun_provider import java.net.InetAddress diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunConfig.kt b/android/src/main/kotlin/net/mullvad/talpid/tun_provider/TunConfig.kt index 929e03b99a..fe8d0f55c7 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunConfig.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/tun_provider/TunConfig.kt @@ -1,4 +1,4 @@ -package net.mullvad.mullvadvpn.model +package net.mullvad.talpid.tun_provider import java.net.InetAddress diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/ActionAfterDisconnect.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt index f39ba030fc..c352ab06ad 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/ActionAfterDisconnect.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ActionAfterDisconnect.kt @@ -1,4 +1,4 @@ -package net.mullvad.mullvadvpn.model +package net.mullvad.talpid.tunnel sealed class ActionAfterDisconnect { class Nothing : ActionAfterDisconnect() diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/BlockReason.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/BlockReason.kt index ae4d392fc2..758e81dfba 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/BlockReason.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/BlockReason.kt @@ -1,4 +1,4 @@ -package net.mullvad.mullvadvpn.model +package net.mullvad.talpid.tunnel sealed class BlockReason { class AuthFailed(val reason: String?) : BlockReason() @@ -10,10 +10,3 @@ sealed class BlockReason { class IsOffline : BlockReason() class TapAdapterProblem : BlockReason() } - -sealed class ParameterGenerationError { - class NoMatchingRelay : ParameterGenerationError() - class NoMatchingBridgeRelay : ParameterGenerationError() - class NoWireguardKey : ParameterGenerationError() - class CustomTunnelHostResultionError : ParameterGenerationError() -} diff --git a/android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt new file mode 100644 index 0000000000..92547a02b4 --- /dev/null +++ b/android/src/main/kotlin/net/mullvad/talpid/tunnel/ParameterGenerationError.kt @@ -0,0 +1,8 @@ +package net.mullvad.talpid.tunnel + +sealed class ParameterGenerationError { + class NoMatchingRelay : ParameterGenerationError() + class NoMatchingBridgeRelay : ParameterGenerationError() + class NoWireguardKey : ParameterGenerationError() + class CustomTunnelHostResultionError : ParameterGenerationError() +} |
