summaryrefslogtreecommitdiffhomepage
path: root/android/lib/daemon-grpc/src
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-06-04 08:27:30 +0200
committerDavid Göransson <david.goransson@mullvad.net>2024-06-04 08:27:30 +0200
commit45c369fe355a5eadc29dd3e6f492ff6d7430ee5d (patch)
tree70925bd8ab3348533ca7217606ac4c2d42356453 /android/lib/daemon-grpc/src
parent3ac0f264402e42a16f0bd6c76e1a6a67e01ed4ef (diff)
parent571c620b51cdc6b4338a3244b500f70e79b3ca7d (diff)
downloadmullvadvpn-45c369fe355a5eadc29dd3e6f492ff6d7430ee5d.tar.xz
mullvadvpn-45c369fe355a5eadc29dd3e6f492ff6d7430ee5d.zip
Merge branch 'add-setting-for-udp2tcp-port-droid-249'
Diffstat (limited to 'android/lib/daemon-grpc/src')
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt33
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt26
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt19
3 files changed, 53 insertions, 25 deletions
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
index 53aefe13db..40fd17d715 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/ManagementService.kt
@@ -67,12 +67,13 @@ import net.mullvad.mullvadvpn.lib.model.GetAccountHistoryError
import net.mullvad.mullvadvpn.lib.model.GetDeviceListError
import net.mullvad.mullvadvpn.lib.model.GetDeviceStateError
import net.mullvad.mullvadvpn.lib.model.LoginAccountError
-import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings as ModelObfuscationSettings
+import net.mullvad.mullvadvpn.lib.model.ObfuscationSettings
import net.mullvad.mullvadvpn.lib.model.Ownership as ModelOwnership
import net.mullvad.mullvadvpn.lib.model.PlayPurchase
import net.mullvad.mullvadvpn.lib.model.PlayPurchaseInitError
import net.mullvad.mullvadvpn.lib.model.PlayPurchasePaymentToken
import net.mullvad.mullvadvpn.lib.model.PlayPurchaseVerifyError
+import net.mullvad.mullvadvpn.lib.model.Port
import net.mullvad.mullvadvpn.lib.model.Providers
import net.mullvad.mullvadvpn.lib.model.QuantumResistantState as ModelQuantumResistantState
import net.mullvad.mullvadvpn.lib.model.RedeemVoucherError
@@ -84,6 +85,7 @@ import net.mullvad.mullvadvpn.lib.model.RelayList as ModelRelayList
import net.mullvad.mullvadvpn.lib.model.RelayList
import net.mullvad.mullvadvpn.lib.model.RelaySettings
import net.mullvad.mullvadvpn.lib.model.RemoveSplitTunnelingAppError
+import net.mullvad.mullvadvpn.lib.model.SelectedObfuscation
import net.mullvad.mullvadvpn.lib.model.SetAllowLanError
import net.mullvad.mullvadvpn.lib.model.SetAutoConnectError
import net.mullvad.mullvadvpn.lib.model.SetDnsOptionsError
@@ -106,7 +108,9 @@ import net.mullvad.mullvadvpn.lib.model.location
import net.mullvad.mullvadvpn.lib.model.ownership
import net.mullvad.mullvadvpn.lib.model.providers
import net.mullvad.mullvadvpn.lib.model.relayConstraints
+import net.mullvad.mullvadvpn.lib.model.selectedObfuscation
import net.mullvad.mullvadvpn.lib.model.state
+import net.mullvad.mullvadvpn.lib.model.udp2tcp
import net.mullvad.mullvadvpn.lib.model.wireguardConstraints
@Suppress("TooManyFunctions")
@@ -379,10 +383,31 @@ class ManagementService(
grpc.setRelaySettings(value.fromDomain())
}
- suspend fun setObfuscationOptions(
- value: ModelObfuscationSettings
+ suspend fun setObfuscation(
+ value: SelectedObfuscation
): Either<SetObfuscationOptionsError, Unit> =
- Either.catch { grpc.setObfuscationSettings(value.fromDomain()) }
+ Either.catch {
+ val updatedObfuscationSettings =
+ ObfuscationSettings.selectedObfuscation.modify(
+ getSettings().obfuscationSettings
+ ) {
+ value
+ }
+ grpc.setObfuscationSettings(updatedObfuscationSettings.fromDomain())
+ }
+ .mapLeft(SetObfuscationOptionsError::Unknown)
+ .mapEmpty()
+
+ suspend fun setObfuscationPort(
+ portConstraint: Constraint<Port>
+ ): Either<SetObfuscationOptionsError, Unit> =
+ Either.catch {
+ val updatedSettings =
+ ObfuscationSettings.udp2tcp.modify(getSettings().obfuscationSettings) {
+ it.copy(port = portConstraint)
+ }
+ grpc.setObfuscationSettings(updatedSettings.fromDomain())
+ }
.mapLeft(SetObfuscationOptionsError::Unknown)
.mapEmpty()
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt
index df4625228f..4efd8c452e 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt
@@ -17,6 +17,8 @@ import net.mullvad.mullvadvpn.lib.model.Port
import net.mullvad.mullvadvpn.lib.model.Providers
import net.mullvad.mullvadvpn.lib.model.RelayItemId
import net.mullvad.mullvadvpn.lib.model.RelaySettings
+import net.mullvad.mullvadvpn.lib.model.SelectedObfuscation
+import net.mullvad.mullvadvpn.lib.model.Udp2TcpObfuscationSettings
import net.mullvad.mullvadvpn.lib.model.WireguardConstraints
internal fun Constraint<RelayItemId>.fromDomain(): ManagementInterface.LocationConstraint =
@@ -70,10 +72,30 @@ internal fun DefaultDnsOptions.fromDomain(): ManagementInterface.DefaultDnsOptio
internal fun ObfuscationSettings.fromDomain(): ManagementInterface.ObfuscationSettings =
ManagementInterface.ObfuscationSettings.newBuilder()
- .setSelectedObfuscation(selectedObfuscation.toDomain())
- .setUdp2Tcp(udp2tcp.toDomain())
+ .setSelectedObfuscation(selectedObfuscation.fromDomain())
+ .setUdp2Tcp(udp2tcp.fromDomain())
.build()
+internal fun SelectedObfuscation.fromDomain():
+ ManagementInterface.ObfuscationSettings.SelectedObfuscation =
+ when (this) {
+ SelectedObfuscation.Udp2Tcp ->
+ ManagementInterface.ObfuscationSettings.SelectedObfuscation.UDP2TCP
+ SelectedObfuscation.Auto -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.AUTO
+ SelectedObfuscation.Off -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.OFF
+ }
+
+internal fun Udp2TcpObfuscationSettings.fromDomain():
+ ManagementInterface.Udp2TcpObfuscationSettings =
+ when (val port = port) {
+ is Constraint.Any ->
+ ManagementInterface.Udp2TcpObfuscationSettings.newBuilder().clearPort().build()
+ is Constraint.Only ->
+ ManagementInterface.Udp2TcpObfuscationSettings.newBuilder()
+ .setPort(port.value.value)
+ .build()
+ }
+
internal fun GeoLocationId.fromDomain(): ManagementInterface.GeographicLocationConstraint =
ManagementInterface.GeographicLocationConstraint.newBuilder()
.apply {
diff --git a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt
index 636e6c5176..0fe64e09f2 100644
--- a/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt
+++ b/android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt
@@ -409,25 +409,6 @@ internal fun QuantumResistantState.toDomain(): ManagementInterface.QuantumResist
)
.build()
-internal fun SelectedObfuscation.toDomain():
- ManagementInterface.ObfuscationSettings.SelectedObfuscation =
- when (this) {
- SelectedObfuscation.Udp2Tcp ->
- ManagementInterface.ObfuscationSettings.SelectedObfuscation.UDP2TCP
- SelectedObfuscation.Auto -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.AUTO
- SelectedObfuscation.Off -> ManagementInterface.ObfuscationSettings.SelectedObfuscation.OFF
- }
-
-internal fun Udp2TcpObfuscationSettings.toDomain(): ManagementInterface.Udp2TcpObfuscationSettings =
- when (val port = port) {
- is Constraint.Any ->
- ManagementInterface.Udp2TcpObfuscationSettings.newBuilder().clearPort().build()
- is Constraint.Only ->
- ManagementInterface.Udp2TcpObfuscationSettings.newBuilder()
- .setPort(port.value.value)
- .build()
- }
-
internal fun ManagementInterface.AppVersionInfo.toDomain(): AppVersionInfo =
AppVersionInfo(
supported = supported,