summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2022-11-25 13:37:55 +0100
committerAndrej Mihajlov <and@mullvad.net>2022-11-28 10:39:08 +0100
commit15825b53b7d8f4688dbcd028ba3cf888a9d9ee16 (patch)
tree72726da701e7deccb68baef00f12087741b7839f
parent6fb38649a915d17f535402a1a31832ba66b9dd20 (diff)
downloadmullvadvpn-15825b53b7d8f4688dbcd028ba3cf888a9d9ee16.tar.xz
mullvadvpn-15825b53b7d8f4688dbcd028ba3cf888a9d9ee16.zip
Throw ReadSettingsVersionError from readSettings()
-rw-r--r--ios/MullvadVPN/SettingsManager/SettingsManager.swift15
1 files changed, 11 insertions, 4 deletions
diff --git a/ios/MullvadVPN/SettingsManager/SettingsManager.swift b/ios/MullvadVPN/SettingsManager/SettingsManager.swift
index fb6881f731..2940937ae4 100644
--- a/ios/MullvadVPN/SettingsManager/SettingsManager.swift
+++ b/ios/MullvadVPN/SettingsManager/SettingsManager.swift
@@ -60,17 +60,24 @@ enum SettingsManager {
// MARK: - Settings
static func readSettings() throws -> TunnelSettingsV2 {
- let data = try store.read(key: .settings)
+ let storedVersion: Int
+ let data: Data
let parser = makeParser()
- let version = try parser.parseVersion(data: data)
+ do {
+ data = try store.read(key: .settings)
+ storedVersion = try parser.parseVersion(data: data)
+ } catch {
+ throw ReadSettingsVersionError(underlyingError: error)
+ }
+
let currentVersion = SchemaVersion.current
- if version == currentVersion.rawValue {
+ if storedVersion == currentVersion.rawValue {
return try parser.parsePayload(as: TunnelSettingsV2.self, from: data)
} else {
throw UnsupportedSettingsVersionError(
- storedVersion: version,
+ storedVersion: storedVersion,
currentVersion: currentVersion
)
}