summaryrefslogtreecommitdiffhomepage
path: root/android/lib/model
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2024-03-19 15:03:06 +0100
committerDavid Göransson <david.goransson@mullvad.net>2024-03-19 16:15:43 +0100
commitaa7eea3e75288e2b0bea9eb55d46e11c558eebee (patch)
tree64fb67699c3fe87b89d068b7c28b4ea509de5cd3 /android/lib/model
parenta1ab31eebd96846514fa67af99c6af091ed68208 (diff)
downloadmullvadvpn-aa7eea3e75288e2b0bea9eb55d46e11c558eebee.tar.xz
mullvadvpn-aa7eea3e75288e2b0bea9eb55d46e11c558eebee.zip
Add daemon support for Server IP overrides
Diffstat (limited to 'android/lib/model')
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayOverride.kt12
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Settings.kt3
-rw-r--r--android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/SettingsPatchError.kt24
3 files changed, 38 insertions, 1 deletions
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayOverride.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayOverride.kt
new file mode 100644
index 0000000000..f738218ee7
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/RelayOverride.kt
@@ -0,0 +1,12 @@
+package net.mullvad.mullvadvpn.model
+
+import android.os.Parcelable
+import java.net.InetAddress
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+data class RelayOverride(
+ val hostname: String,
+ val ipv4AddressIn: InetAddress?,
+ val ipv6AddressIn: InetAddress?
+) : Parcelable
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Settings.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Settings.kt
index 304edc404a..847b80cd70 100644
--- a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Settings.kt
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/Settings.kt
@@ -11,5 +11,6 @@ data class Settings(
val allowLan: Boolean,
val autoConnect: Boolean,
val tunnelOptions: TunnelOptions,
- val showBetaReleases: Boolean
+ val relayOverrides: ArrayList<RelayOverride>,
+ val showBetaReleases: Boolean,
) : Parcelable
diff --git a/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/SettingsPatchError.kt b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/SettingsPatchError.kt
new file mode 100644
index 0000000000..5e3cb29911
--- /dev/null
+++ b/android/lib/model/src/main/kotlin/net/mullvad/mullvadvpn/model/SettingsPatchError.kt
@@ -0,0 +1,24 @@
+package net.mullvad.mullvadvpn.model
+
+import android.os.Parcelable
+import kotlinx.parcelize.Parcelize
+
+@Parcelize
+sealed class SettingsPatchError : Parcelable {
+ // E.g hostname is number instead of String
+ data class InvalidOrMissingValue(val value: String) : SettingsPatchError()
+
+ // E.g. Unexpected top-level key?
+ data class UnknownOrProhibitedKey(val value: String) : SettingsPatchError()
+
+ // Bad JSON
+ data object ParsePatch : SettingsPatchError()
+
+ data object RecursionLimit : SettingsPatchError()
+
+ // Patch was deserialized but was not valid domain data?
+ data object DeserializePatched : SettingsPatchError()
+
+ // Failed to apply patch
+ data object ApplyPatch : SettingsPatchError()
+}