From e8ffca9d50e859e1473a9f0611a85d3bf44ada3f Mon Sep 17 00:00:00 2001 From: Davide Date: Fri, 7 Feb 2025 01:15:03 +0100 Subject: [PATCH] Fix migration of DNS settings (#1144) In some cases, the migration process may insert a DNS module without servers. Do not add it at all. --- Packages/App/Sources/LegacyV2/Domain/MapperV2.swift | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Packages/App/Sources/LegacyV2/Domain/MapperV2.swift b/Packages/App/Sources/LegacyV2/Domain/MapperV2.swift index 6d4d6853..28bc9a4e 100644 --- a/Packages/App/Sources/LegacyV2/Domain/MapperV2.swift +++ b/Packages/App/Sources/LegacyV2/Domain/MapperV2.swift @@ -121,8 +121,8 @@ extension MapperV2 { extension MapperV2 { func toNetworkModules(_ v2: ProfileV2.NetworkSettings) throws -> [Module] { var modules: [Module] = [] - if v2.dns.choice == .manual { - modules.append(try toDNSModule(v2.dns)) + if v2.dns.choice == .manual, let dnsModule = try toDNSModule(v2.dns) { + modules.append(dnsModule) } if v2.proxy.choice == .manual { modules.append(try toHTTPProxyModule(v2.proxy)) @@ -133,10 +133,13 @@ extension MapperV2 { return modules } - func toDNSModule(_ v2: Network.DNSSettings) throws -> DNSModule { + func toDNSModule(_ v2: Network.DNSSettings) throws -> DNSModule? { var builder = DNSModule.Builder() builder.protocolType = v2.dnsProtocol ?? .cleartext builder.servers = v2.dnsServers ?? [] + guard builder.protocolType != .cleartext || !builder.servers.isEmpty else { + return nil + } builder.domainName = v2.dnsDomain builder.searchDomains = v2.dnsSearchDomains builder.dohURL = v2.dnsHTTPSURL?.absoluteString ?? ""