From 491205e621775bf4e408194e4838ae1cd1b5d310 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkk669@users.noreply.github.com> Date: Sun, 27 Sep 2020 22:51:23 +0900 Subject: [PATCH] Fix the bug that disabling "Use This Server" doesn't work Fixes #6 --- DNSecure/ContentView.swift | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/DNSecure/ContentView.swift b/DNSecure/ContentView.swift index ba31911..fad9264 100644 --- a/DNSecure/ContentView.swift +++ b/DNSecure/ContentView.swift @@ -73,18 +73,29 @@ struct ContentView { self.alert("Load Error", loadError.localizedDescription) return } - manager.dnsSettings = self.usedID - .flatMap(UUID.init) - .flatMap(self.servers.find) - .map(\.configuration) - .map { $0.toDNSSettings() } - manager.saveToPreferences { saveError in - if let saveError = saveError { - logger.error("\(saveError.localizedDescription)") - self.alert("Save Error", saveError.localizedDescription) - return + if let usedID = self.usedID, + let uuid = UUID(uuidString: usedID), + let server = self.servers.find(by: uuid) { + manager.dnsSettings = server.configuration.toDNSSettings() + manager.saveToPreferences { saveError in + self.updateStatus() + if let saveError = saveError { + logger.error("\(saveError.localizedDescription)") + self.alert("Save Error", saveError.localizedDescription) + return + } + logger.debug("DNS settings was saved") + } + } else { + manager.removeFromPreferences { removeError in + self.updateStatus() + if let removeError = removeError { + logger.error("\(removeError.localizedDescription)") + self.alert("Remove Error", removeError.localizedDescription) + return + } + logger.debug("DNS settings was removed") } - logger.debug("DNS settings are saved") } } }