diff --git a/WireGuard/WireGuard/VPN/DNSResolver.swift b/WireGuard/WireGuard/VPN/DNSResolver.swift index e750454..6b7b73b 100644 --- a/WireGuard/WireGuard/VPN/DNSResolver.swift +++ b/WireGuard/WireGuard/VPN/DNSResolver.swift @@ -20,7 +20,9 @@ class DNSResolver { var resolvedEndpoints: [Endpoint?] = Array(repeating: nil, count: endpoints.count) for (i, endpoint) in self.endpoints.enumerated() { guard let endpoint = endpoint else { continue } - if let resolvedEndpointStringInCache = DNSResolver.cache.object(forKey: endpoint.stringRepresentation() as NSString), + if (endpoint.hasHostAsIPAddress()) { + resolvedEndpoints[i] = endpoint + } else if let resolvedEndpointStringInCache = DNSResolver.cache.object(forKey: endpoint.stringRepresentation() as NSString), let resolvedEndpointInCache = Endpoint(from: resolvedEndpointStringInCache as String) { resolvedEndpoints[i] = resolvedEndpointInCache } else { @@ -38,7 +40,9 @@ class DNSResolver { var isResolvedByDNSRequest: [Bool] = Array(repeating: false, count: endpoints.count) for (i, endpoint) in self.endpoints.enumerated() { guard let endpoint = endpoint else { continue } - if let resolvedEndpointStringInCache = DNSResolver.cache.object(forKey: endpoint.stringRepresentation() as NSString), + if (endpoint.hasHostAsIPAddress()) { + resolvedEndpoints[i] = endpoint + } else if let resolvedEndpointStringInCache = DNSResolver.cache.object(forKey: endpoint.stringRepresentation() as NSString), let resolvedEndpointInCache = Endpoint(from: resolvedEndpointStringInCache as String) { resolvedEndpoints[i] = resolvedEndpointInCache } else {