diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2022-11-25 13:37:55 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2022-11-28 10:39:08 +0100 |
| commit | 15825b53b7d8f4688dbcd028ba3cf888a9d9ee16 (patch) | |
| tree | 72726da701e7deccb68baef00f12087741b7839f | |
| parent | 6fb38649a915d17f535402a1a31832ba66b9dd20 (diff) | |
| download | mullvadvpn-15825b53b7d8f4688dbcd028ba3cf888a9d9ee16.tar.xz mullvadvpn-15825b53b7d8f4688dbcd028ba3cf888a9d9ee16.zip | |
Throw ReadSettingsVersionError from readSettings()
| -rw-r--r-- | ios/MullvadVPN/SettingsManager/SettingsManager.swift | 15 |
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 ) } |
