diff options
| author | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-04-04 08:49:59 +0200 |
|---|---|---|
| committer | Jonatan Rhodin <jonatan.rhodin@mullvad.net> | 2025-04-04 09:53:14 +0200 |
| commit | 637af3c22b57b9fc06e74c1ca2c34952aecc1f70 (patch) | |
| tree | ed91e4e8ce381d83d98885a277895e9e5ab64b97 /android/lib | |
| parent | 119925c7887f735c688eaf491ea64d9e1b80b0c5 (diff) | |
| download | mullvadvpn-637af3c22b57b9fc06e74c1ca2c34952aecc1f70.tar.xz mullvadvpn-637af3c22b57b9fc06e74c1ca2c34952aecc1f70.zip | |
Show correct in ip when using multihop
Diffstat (limited to 'android/lib')
2 files changed, 15 insertions, 8 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 5e2f7fb831..40ee4d6bcf 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 @@ -176,16 +176,15 @@ internal fun ManagementInterface.GeoIpLocation.toDomain(): GeoIpLocation = internal fun ManagementInterface.TunnelEndpoint.toDomain(): TunnelEndpoint = TunnelEndpoint( endpoint = - with(address) { - val indexOfSeparator = indexOfLast { it == ':' } - val ipPart = - address.substring(0, indexOfSeparator).filter { it !in listOf('[', ']') } - val portPart = address.substring(indexOfSeparator + 1) - + Endpoint(address = address.toInetSocketAddress(), protocol = protocol.toDomain()), + entryEndpoint = + if (hasEntryEndpoint()) { Endpoint( - address = InetSocketAddress(InetAddress.getByName(ipPart), portPart.toInt()), - protocol = protocol.toDomain(), + address = entryEndpoint.address.toInetSocketAddress(), + protocol = entryEndpoint.protocol.toDomain(), ) + } else { + null }, quantumResistant = quantumResistant, obfuscation = @@ -204,6 +203,13 @@ internal fun ManagementInterface.ObfuscationEndpoint.toDomain(): ObfuscationEndp obfuscationType = obfuscationType.toDomain(), ) +private fun String.toInetSocketAddress(): InetSocketAddress { + val indexOfSeparator = indexOfLast { it == ':' } + val ipPart = substring(0, indexOfSeparator).filter { it !in listOf('[', ']') } + val portPart = substring(indexOfSeparator + 1) + return InetSocketAddress(InetAddress.getByName(ipPart), portPart.toInt()) +} + internal fun ManagementInterface.ObfuscationEndpoint.ObfuscationType.toDomain(): ObfuscationType = when (this) { ManagementInterface.ObfuscationEndpoint.ObfuscationType.UDP2TCP -> ObfuscationType.Udp2Tcp diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/TunnelEndpoint.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/TunnelEndpoint.kt index 3902e5c965..0092b4a09c 100644 --- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/TunnelEndpoint.kt +++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/TunnelEndpoint.kt @@ -1,6 +1,7 @@ package net.mullvad.mullvadvpn.lib.model data class TunnelEndpoint( + val entryEndpoint: Endpoint?, val endpoint: Endpoint, val quantumResistant: Boolean, val obfuscation: ObfuscationEndpoint?, |
