summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2022-04-16 09:46:43 +0200
committerAndrej Mihajlov <and@mullvad.net>2022-04-29 10:30:25 +0200
commitd3b82886935ab2ccdda355057b096248b7a6f301 (patch)
tree90a11155abbefe626ec96d7df1ae5330bff43d0e
parenta9eb6e64a0dd186e2eb9b885abf9477be2719c08 (diff)
downloadmullvadvpn-d3b82886935ab2ccdda355057b096248b7a6f301.tar.xz
mullvadvpn-d3b82886935ab2ccdda355057b096248b7a6f301.zip
AddressCacheStore: move initialization into separate method
-rw-r--r--ios/MullvadVPN/AddressCache/AddressCacheStore.swift76
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