From 33edfd35876ff439e95385e247590ed2a27ebac6 Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Tue, 6 Nov 2018 23:38:02 +0530 Subject: [PATCH] DNSResolver: No need to resolve if the endpoint is already an IP address Signed-off-by: Roopesh Chander --- WireGuard/WireGuard/VPN/DNSResolver.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 {