diff options
| author | David Göransson <david.goransson@mullvad.net> | 2025-07-18 14:33:33 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2025-07-18 14:44:12 +0200 |
| commit | 58b694f30e36b8032f1c45f2179f82051f677520 (patch) | |
| tree | 95cf79fe7ee0901b264714608c9f334d91629217 /android/lib | |
| parent | aa91b11b4030737dd9dcdac324bf2a3c971de9a7 (diff) | |
| download | mullvadvpn-58b694f30e36b8032f1c45f2179f82051f677520.tar.xz mullvadvpn-58b694f30e36b8032f1c45f2179f82051f677520.zip | |
Handle locations being not present
Diffstat (limited to 'android/lib')
| -rw-r--r-- | android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt | 15 |
1 files changed, 9 insertions, 6 deletions
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 be817feb04..02609da2f8 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 @@ -9,6 +9,8 @@ import java.time.Instant import java.time.ZoneId import java.util.UUID import mullvad_daemon.management_interface.ManagementInterface +import mullvad_daemon.management_interface.entryLocationOrNull +import mullvad_daemon.management_interface.locationOrNull import mullvad_daemon.management_interface.recentsOrNull import net.mullvad.mullvadvpn.lib.daemon.grpc.GrpcConnectivityState import net.mullvad.mullvadvpn.lib.daemon.grpc.RelayNameComparator @@ -349,18 +351,19 @@ internal fun ManagementInterface.RelaySettings.toDomain(): RelaySettings = internal fun ManagementInterface.NormalRelaySettings.toDomain(): RelayConstraints = RelayConstraints( - location = location.toDomain(), + location = locationOrNull?.toDomain() ?: Constraint.Any, providers = providersList.toDomain(), ownership = ownership.toDomain(), wireguardConstraints = wireguardConstraints.toDomain(), ) -internal fun ManagementInterface.LocationConstraint.toDomain(): Constraint.Only<RelayItemId> = +internal fun ManagementInterface.LocationConstraint.toDomain(): Constraint<RelayItemId> = when (typeCase) { ManagementInterface.LocationConstraint.TypeCase.CUSTOM_LIST -> Constraint.Only(CustomListId(customList)) ManagementInterface.LocationConstraint.TypeCase.LOCATION -> Constraint.Only(location.toDomain()) + ManagementInterface.LocationConstraint.TypeCase.TYPE_NOT_SET -> Constraint.Any else -> throw IllegalArgumentException("Invalid location constraint") } @@ -390,7 +393,7 @@ internal fun ManagementInterface.WireguardConstraints.toDomain(): WireguardConst Constraint.Any }, isMultihopEnabled = useMultihop, - entryLocation = entryLocation.toDomain(), + entryLocation = entryLocationOrNull?.toDomain() ?: Constraint.Any, ipVersion = if (hasIpVersion()) { Constraint.Only(ipVersion.toDomain()) @@ -743,12 +746,12 @@ internal fun ManagementInterface.Recent.toDomain(): Recent = when (typeCase) { ManagementInterface.Recent.TypeCase.MULTIHOP -> Recent.Multihop( - entry = multihop.entry.toDomain().value, - exit = multihop.exit.toDomain().value, + entry = (multihop.entry.toDomain() as Constraint.Only).value, + exit = (multihop.exit.toDomain() as Constraint.Only).value, ) ManagementInterface.Recent.TypeCase.SINGLEHOP -> - Recent.Singlehop(singlehop.toDomain().value) + Recent.Singlehop((singlehop.toDomain() as Constraint.Only).value) ManagementInterface.Recent.TypeCase.TYPE_NOT_SET -> error("Recent type must be set") } |
