diff --git a/swift/apple/FirezoneNetworkExtension/Adapter.swift b/swift/apple/FirezoneNetworkExtension/Adapter.swift index da05c35a4..6a71a61be 100644 --- a/swift/apple/FirezoneNetworkExtension/Adapter.swift +++ b/swift/apple/FirezoneNetworkExtension/Adapter.swift @@ -372,8 +372,15 @@ extension Adapter: CallbackHandlerDelegate { workQueue.async { [weak self] in guard let self = self else { return } - // Update resource List. We don't care what's inside. - resourceListJSON = resourceList + if resourceListJSON != resourceList, let networkSettings = self.networkSettings { + // Update resource List. We don't care what's inside. + resourceListJSON = resourceList + + // Apply network settings to flush DNS cache when resources change + // This ensures new DNS resources are immediately resolvable + Log.log("Reapplying network settings to flush DNS cache after resource update") + networkSettings.apply() + } self.resourcesUpdated() } diff --git a/website/src/components/Changelog/Apple.tsx b/website/src/components/Changelog/Apple.tsx index 35457dadd..774c68204 100644 --- a/website/src/components/Changelog/Apple.tsx +++ b/website/src/components/Changelog/Apple.tsx @@ -24,7 +24,12 @@ export default function Apple() { return ( {/* When you cut a release, remove any solved issues from the "known issues" lists over in `client-apps`. This must not be done when the issue's PR merges. */} - + + + Fixes a minor DNS cache bug where newly-added DNS resources may not + resolve for a few seconds after showing up in the Resource List. + + Fixes an issue on iOS 17 and below that caused the tunnel to crash