diff options
| -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 ) } |
