diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2022-04-16 09:46:43 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2022-04-29 10:30:25 +0200 |
| commit | d3b82886935ab2ccdda355057b096248b7a6f301 (patch) | |
| tree | 90a11155abbefe626ec96d7df1ae5330bff43d0e | |
| parent | a9eb6e64a0dd186e2eb9b885abf9477be2719c08 (diff) | |
| download | mullvadvpn-d3b82886935ab2ccdda355057b096248b7a6f301.tar.xz mullvadvpn-d3b82886935ab2ccdda355057b096248b7a6f301.zip | |
AddressCacheStore: move initialization into separate method
| -rw-r--r-- | ios/MullvadVPN/AddressCache/AddressCacheStore.swift | 76 |
1 files changed, 40 insertions, 36 deletions
diff --git a/ios/MullvadVPN/AddressCache/AddressCacheStore.swift b/ios/MullvadVPN/AddressCache/AddressCacheStore.swift index c64a8cf163..745e83dc9d 100644 --- a/ios/MullvadVPN/AddressCache/AddressCacheStore.swift +++ b/ios/MullvadVPN/AddressCache/AddressCacheStore.swift @@ -83,43 +83,9 @@ extension AddressCache { init(cacheFileURL: URL, prebundledCacheFileURL: URL) { self.cacheFileURL = cacheFileURL self.prebundledCacheFileURL = prebundledCacheFileURL - self.cachedAddresses = Self.defaultCachedAddresses + cachedAddresses = Self.defaultCachedAddresses - switch readFromCacheLocationWithFallback() { - case .success(let readResult): - if readResult.cachedAddresses.endpoints.isEmpty { - logger.debug("Read empty cache from \(readResult.source). Fallback to default API endpoint.") - - cachedAddresses = Self.defaultCachedAddresses - - logger.debug("Initialized cache with default API endpoint.") - } else { - switch readResult.source { - case .disk: - cachedAddresses = readResult.cachedAddresses - - case .bundle: - var addresses = readResult.cachedAddresses - addresses.endpoints.shuffle() - cachedAddresses = addresses - - logger.debug("Persist address list read from bundle.") - - if case .failure(let error) = writeToDisk() { - logger.error(chainedError: error, message: "Failed to persist address cache after reading it from bundle.") - } - } - - logger.debug("Initialized cache from \(readResult.source) with \(cachedAddresses.endpoints.count) endpoint(s).") - } - - case .failure(let error): - logger.error(chainedError: error, message: "Failed to read address cache. Fallback to default API endpoint.") - - cachedAddresses = Self.defaultCachedAddresses - - logger.debug("Initialized cache with default API endpoint.") - } + initializeStore() } func getCurrentEndpoint() -> AnyIPEndpoint { @@ -187,6 +153,44 @@ extension AddressCache { return cachedAddresses.updatedAt } + private func initializeStore() { + switch readFromCacheLocationWithFallback() { + case .success(let readResult): + if readResult.cachedAddresses.endpoints.isEmpty { + logger.debug("Read empty cache from \(readResult.source). Fallback to default API endpoint.") + + cachedAddresses = Self.defaultCachedAddresses + + logger.debug("Initialized cache with default API endpoint.") + } else { + switch readResult.source { + case .disk: + cachedAddresses = readResult.cachedAddresses + + case .bundle: + var addresses = readResult.cachedAddresses + addresses.endpoints.shuffle() + cachedAddresses = addresses + + logger.debug("Persist address list read from bundle.") + + if case .failure(let error) = writeToDisk() { + logger.error(chainedError: error, message: "Failed to persist address cache after reading it from bundle.") + } + } + + logger.debug("Initialized cache from \(readResult.source) with \(cachedAddresses.endpoints.count) endpoint(s).") + } + + case .failure(let error): + logger.error(chainedError: error, message: "Failed to read address cache. Fallback to default API endpoint.") + + cachedAddresses = Self.defaultCachedAddresses + + logger.debug("Initialized cache with default API endpoint.") + } + } + private func readFromCacheLocationWithFallback() -> Result<ReadResult, AddressCache.StoreError> { return readFromCacheLocation() .map { addresses in |
