summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-08-31 13:04:38 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-08-31 13:04:38 +0200
commitd3a83c99a08d89c83671f1bb4a287579b8f216bc (patch)
treefe9108ee952a1d67e058fe064cf25ae82d1b1083
parent1775e29d2064f1179bbc14481855bc6c58aa02a2 (diff)
parent930b834b747f82879290fa92bded1b62468f6e2b (diff)
downloadmullvadvpn-d3a83c99a08d89c83671f1bb4a287579b8f216bc.tar.xz
mullvadvpn-d3a83c99a08d89c83671f1bb4a287579b8f216bc.zip
Merge branch 'fix-settings-migration'
-rw-r--r--mullvad-types/src/settings/migrations/v3.rs40
1 files changed, 21 insertions, 19 deletions
diff --git a/mullvad-types/src/settings/migrations/v3.rs b/mullvad-types/src/settings/migrations/v3.rs
index 70b5cef196..b7d9cb1f2e 100644
--- a/mullvad-types/src/settings/migrations/v3.rs
+++ b/mullvad-types/src/settings/migrations/v3.rs
@@ -20,26 +20,28 @@ impl super::SettingsMigration for Migration {
}();
if let Some(options) = dns_options {
- let new_state = if options
- .get("custom")
- .map(|custom| custom.as_bool().unwrap_or(false))
- .unwrap_or(false)
- {
- DnsState::Custom
- } else {
- DnsState::Default
- };
- let addresses = if let Some(addrs) = options.get("addresses") {
- serde_json::from_value(addrs.clone()).map_err(Error::ParseError)?
- } else {
- vec![]
- };
+ if options.get("state").is_none() {
+ let new_state = if options
+ .get("custom")
+ .map(|custom| custom.as_bool().unwrap_or(false))
+ .unwrap_or(false)
+ {
+ DnsState::Custom
+ } else {
+ DnsState::Default
+ };
+ let addresses = if let Some(addrs) = options.get("addresses") {
+ serde_json::from_value(addrs.clone()).map_err(Error::ParseError)?
+ } else {
+ vec![]
+ };
- settings["tunnel_options"]["dns_options"] = serde_json::json!(DnsOptions {
- state: new_state,
- default_options: DefaultDnsOptions::default(),
- custom_options: CustomDnsOptions { addresses },
- });
+ settings["tunnel_options"]["dns_options"] = serde_json::json!(DnsOptions {
+ state: new_state,
+ default_options: DefaultDnsOptions::default(),
+ custom_options: CustomDnsOptions { addresses },
+ });
+ }
}
settings["settings_version"] = serde_json::json!(SettingsVersion::V4);