diff options
| author | Kalle Lindström <karl.lindstrom@mullvad.net> | 2025-07-22 14:26:22 +0200 |
|---|---|---|
| committer | Kalle Lindström <karl.lindstrom@mullvad.net> | 2025-07-22 14:26:22 +0200 |
| commit | b2fc803af349205bc40d7cd00e0a480536c3d09e (patch) | |
| tree | d603241a7e9ed6284f89704140f02c1a828518cb /android/lib/daemon-grpc/src | |
| parent | 75501a665b1bb7257cacd79f1eca84c839929725 (diff) | |
| parent | 526ecbf7d85c8abe7af08daf04dc4bc0c6df109c (diff) | |
| download | mullvadvpn-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.kt | 27 |
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( |
