diff options
| author | David Göransson <david.goransson@mullvad.net> | 2024-10-22 14:45:39 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-10-23 14:59:46 +0200 |
| commit | 2ba727134060eb434c8335c0ae0970ba3e4f21cb (patch) | |
| tree | 95e9f380cb3b1ed2a327a718098bea730b8e1210 | |
| parent | 6a149da48d8831f7f6990e0ff2d361f3f835a8df (diff) | |
| download | mullvadvpn-2ba727134060eb434c8335c0ae0970ba3e4f21cb.tar.xz mullvadvpn-2ba727134060eb434c8335c0ae0970ba3e4f21cb.zip | |
Add support Encrypted DNS Proxy
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 |
