summaryrefslogtreecommitdiffhomepage
path: root/android/lib/daemon-grpc/src
diff options
context:
space:
mode:
authorKalle Lindström <karl.lindstrom@mullvad.net>2025-07-22 14:26:22 +0200
committerKalle Lindström <karl.lindstrom@mullvad.net>2025-07-22 14:26:22 +0200
commitb2fc803af349205bc40d7cd00e0a480536c3d09e (patch)
treed603241a7e9ed6284f89704140f02c1a828518cb /android/lib/daemon-grpc/src
parent75501a665b1bb7257cacd79f1eca84c839929725 (diff)
parent526ecbf7d85c8abe7af08daf04dc4bc0c6df109c (diff)
downloadmullvadvpn-b2fc803af349205bc40d7cd00e0a480536c3d09e.tar.xz
mullvadvpn-b2fc803af349205bc40d7cd00e0a480536c3d09e.zip
Merge branch 'implement-recents-support-ui'
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.kt27
1 files changed, 27 insertions, 0 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 cff4e2bd3e..3716e4d9c0 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
@@ -576,6 +576,28 @@ class ManagementService(
.mapLeft(SetRelayLocationError::Unknown)
.mapEmpty()
+ suspend fun setRelayLocationMultihop(
+ entry: RelayItemId,
+ exit: RelayItemId,
+ ): Either<SetRelayLocationError, Unit> =
+ Either.catch {
+ val currentRelaySettings = getSettings().relaySettings
+
+ val updatedRelaySettings =
+ currentRelaySettings.copy {
+ inside(RelaySettings.relayConstraints) {
+ RelayConstraints.location set Constraint.Only(exit)
+ RelayConstraints.wireguardConstraints.entryLocation set
+ Constraint.Only(entry)
+ RelayConstraints.wireguardConstraints.isMultihopEnabled set true
+ }
+ }
+ grpc.setRelaySettings(updatedRelaySettings.fromDomain())
+ }
+ .onLeft { Logger.e("Set relay multihop error") }
+ .mapLeft(SetRelayLocationError::Unknown)
+ .mapEmpty()
+
suspend fun createCustomList(
name: CustomListName,
locations: List<GeoLocationId> = emptyList(),
@@ -855,6 +877,11 @@ class ManagementService(
.mapLeft(SetDaitaSettingsError::Unknown)
.mapEmpty()
+ suspend fun setRecentsEnabled(enabled: Boolean): Either<SetWireguardConstraintsError, Unit> =
+ Either.catch { grpc.setEnableRecents(BoolValue.of(enabled)) }
+ .mapLeft(SetWireguardConstraintsError::Unknown)
+ .mapEmpty()
+
private fun <A> Either<A, Empty>.mapEmpty() = map {}
private inline fun <B, C> Either<Throwable, B>.mapLeftStatus(