summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-10-22 14:45:39 +0200
committerMarkus Pettersson <markus.pettersson@mullvad.net>2024-10-23 14:59:46 +0200
commit2ba727134060eb434c8335c0ae0970ba3e4f21cb (patch)
tree95e9f380cb3b1ed2a327a718098bea730b8e1210
parent6a149da48d8831f7f6990e0ff2d361f3f835a8df (diff)
downloadmullvadvpn-2ba727134060eb434c8335c0ae0970ba3e4f21cb.tar.xz
mullvadvpn-2ba727134060eb434c8335c0ae0970ba3e4f21cb.zip
Add support Encrypted DNS Proxy
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/FromDomain.kt10
-rw-r--r--android/lib/daemon-grpc/src/main/kotlin/net/mullvad/mullvadvpn/lib/daemon/grpc/mapper/ToDomain.kt8
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt2
3 files changed, 16 insertions, 4 deletions
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 817418e1fc..622e95d9dd 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
@@ -188,7 +188,11 @@ internal fun ApiAccessMethod.fromDomain(): ManagementInterface.AccessMethod =
it.setDirect(ManagementInterface.AccessMethod.Direct.getDefaultInstance())
ApiAccessMethod.Bridges ->
it.setBridges(ManagementInterface.AccessMethod.Bridges.getDefaultInstance())
- is ApiAccessMethod.CustomProxy -> it.setCustom(this.fromDomain())
+ is ApiAccessMethod.CustomProxy -> it.setCustom(fromDomain())
+ is ApiAccessMethod.EncryptedDns ->
+ it.setEncryptedDnsProxy(
+ ManagementInterface.AccessMethod.EncryptedDnsProxy.getDefaultInstance()
+ )
}
}
.build()
@@ -197,8 +201,8 @@ internal fun ApiAccessMethod.CustomProxy.fromDomain(): ManagementInterface.Custo
ManagementInterface.CustomProxy.newBuilder()
.let {
when (this) {
- is ApiAccessMethod.CustomProxy.Shadowsocks -> it.setShadowsocks(this.fromDomain())
- is ApiAccessMethod.CustomProxy.Socks5Remote -> it.setSocks5Remote(this.fromDomain())
+ is ApiAccessMethod.CustomProxy.Shadowsocks -> it.setShadowsocks(fromDomain())
+ is ApiAccessMethod.CustomProxy.Socks5Remote -> it.setSocks5Remote(fromDomain())
}
}
.build()
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 bb7fb83fa6..fc4c64942f 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
@@ -557,7 +557,12 @@ internal fun ManagementInterface.PlayPurchasePaymentToken.toDomain(): PlayPurcha
PlayPurchasePaymentToken(value = token)
internal fun ManagementInterface.ApiAccessMethodSettings.toDomain(): List<ApiAccessMethodSetting> =
- listOf(direct.toDomain(), mullvadBridges.toDomain()).plus(customList.map { it.toDomain() })
+ buildList {
+ add(direct.toDomain())
+ add(mullvadBridges.toDomain())
+ add(encryptedDnsProxy.toDomain())
+ addAll(customList.map { it.toDomain() })
+ }
internal fun ManagementInterface.AccessMethodSetting.toDomain(): ApiAccessMethodSetting =
ApiAccessMethodSetting(
@@ -571,6 +576,7 @@ internal fun ManagementInterface.AccessMethod.toDomain(): ApiAccessMethod =
when {
hasDirect() -> ApiAccessMethod.Direct
hasBridges() -> ApiAccessMethod.Bridges
+ hasEncryptedDnsProxy() -> ApiAccessMethod.EncryptedDns
hasCustom() -> custom.toDomain()
else -> error("Type not found")
}
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt
index 3fdcf8c730..dde768cfea 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/lib/model/ApiAccessMethod.kt
@@ -8,6 +8,8 @@ sealed interface ApiAccessMethod : Parcelable {
@Parcelize data object Bridges : ApiAccessMethod
+ @Parcelize data object EncryptedDns : ApiAccessMethod
+
sealed interface CustomProxy : ApiAccessMethod {
@Parcelize
data class Socks5Remote(val ip: String, val port: Port, val auth: SocksAuth?) : CustomProxy