diff options
| author | Jon Petersson <jon.petersson@kvadrat.se> | 2024-01-15 16:46:09 +0100 |
|---|---|---|
| committer | Jon Petersson <jon.petersson@kvadrat.se> | 2024-02-07 11:08:48 +0100 |
| commit | 758e217c05d23ccffdaa80db48edfe2b1cc1464d (patch) | |
| tree | d9f4c4b354a553dcdbd9b8ac6cf281fe9407c987 /ios/MullvadVPN/RelayCacheTracker | |
| parent | 446ef2b026bebce7d877226a7db0551496acbf28 (diff) | |
| download | mullvadvpn-758e217c05d23ccffdaa80db48edfe2b1cc1464d.tar.xz mullvadvpn-758e217c05d23ccffdaa80db48edfe2b1cc1464d.zip | |
Relay selector should use overridden IP addresses for relays
Diffstat (limited to 'ios/MullvadVPN/RelayCacheTracker')
| -rw-r--r-- | ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift b/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift index eb9050318f..67a8145020 100644 --- a/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift +++ b/ios/MullvadVPN/RelayCacheTracker/RelayCacheTracker.swift @@ -21,6 +21,7 @@ protocol RelayCacheTrackerProtocol { func getNextUpdateDate() -> Date func addObserver(_ observer: RelayCacheTrackerObserver) func removeObserver(_ observer: RelayCacheTrackerObserver) + func refreshCachedRelays() throws } final class RelayCacheTracker: RelayCacheTrackerProtocol { @@ -144,6 +145,20 @@ final class RelayCacheTracker: RelayCacheTrackerProtocol { } } + func refreshCachedRelays() throws { + let newCachedRelays = try cache.read() + + nslock.lock() + cachedRelays = newCachedRelays + nslock.unlock() + + DispatchQueue.main.async { + self.observerList.forEach { observer in + observer.relayCacheTracker(self, didUpdateCachedRelays: newCachedRelays) + } + } + } + func getNextUpdateDate() -> Date { nslock.lock() defer { nslock.unlock() } @@ -208,17 +223,8 @@ final class RelayCacheTracker: RelayCacheTrackerProtocol { updatedAt: Date() ) - nslock.lock() - cachedRelays = newCachedRelays - nslock.unlock() - try cache.write(record: newCachedRelays) - - DispatchQueue.main.async { - self.observerList.forEach { observer in - observer.relayCacheTracker(self, didUpdateCachedRelays: newCachedRelays) - } - } + try refreshCachedRelays() } private func scheduleRepeatingTimer(startTime: DispatchWallTime) { |
