From c17e4a27a2192c28a1c4d6ba58c4c33040a2d8bf Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Thu, 8 Nov 2018 16:40:38 +0530 Subject: DNSResolver: Simplify Signed-off-by: Roopesh Chander --- .../WireGuardNetworkExtension/DNSResolver.swift | 34 ++++------------------ 1 file changed, 6 insertions(+), 28 deletions(-) (limited to 'WireGuard/WireGuardNetworkExtension/DNSResolver.swift') diff --git a/WireGuard/WireGuardNetworkExtension/DNSResolver.swift b/WireGuard/WireGuardNetworkExtension/DNSResolver.swift index d69b96d..0874fd9 100644 --- a/WireGuard/WireGuardNetworkExtension/DNSResolver.swift +++ b/WireGuard/WireGuardNetworkExtension/DNSResolver.swift @@ -9,18 +9,9 @@ enum DNSResolverError: Error { } class DNSResolver { - let endpoints: [Endpoint?] - let dispatchGroup: DispatchGroup - var dispatchWorkItems: [DispatchWorkItem] - init(endpoints: [Endpoint?]) { - self.endpoints = endpoints - self.dispatchWorkItems = [] - self.dispatchGroup = DispatchGroup() - } - - func isAllEndpointsAlreadyResolved() -> Bool { - for endpoint in self.endpoints { + static func isAllEndpointsAlreadyResolved(endpoints: [Endpoint?]) -> Bool { + for endpoint in endpoints { guard let endpoint = endpoint else { continue } if (!endpoint.hasHostAsIPAddress()) { return false @@ -29,17 +20,15 @@ class DNSResolver { return true } - func resolveSync() throws -> [Endpoint?] { - let endpoints = self.endpoints - let dispatchGroup = self.dispatchGroup - dispatchWorkItems = [] + static func resolveSync(endpoints: [Endpoint?]) throws -> [Endpoint?] { + let dispatchGroup: DispatchGroup = DispatchGroup() - if (isAllEndpointsAlreadyResolved()) { + if (isAllEndpointsAlreadyResolved(endpoints: endpoints)) { return endpoints } var resolvedEndpoints: [Endpoint?] = Array(repeating: nil, count: endpoints.count) - for (i, endpoint) in self.endpoints.enumerated() { + for (i, endpoint) in endpoints.enumerated() { guard let endpoint = endpoint else { continue } if (endpoint.hasHostAsIPAddress()) { resolvedEndpoints[i] = endpoint @@ -47,7 +36,6 @@ class DNSResolver { let workItem = DispatchWorkItem { resolvedEndpoints[i] = DNSResolver.resolveSync(endpoint: endpoint) } - dispatchWorkItems.append(workItem) DispatchQueue.global(qos: .userInitiated).async(group: dispatchGroup, execute: workItem) } } @@ -72,16 +60,6 @@ class DNSResolver { } return resolvedEndpoints } - - func cancel() { - for workItem in dispatchWorkItems { - workItem.cancel() - } - } - - deinit { - cancel() - } } extension DNSResolver { -- cgit v1.2.3-59-g8ed1b