From a9327249eb781be8cab64477174e870501421eb7 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Fri, 1 Oct 2021 19:25:54 -0400 Subject: [PATCH] GeminiProtocl: Fix attribution not being set, and not compiling on macOS --- GeminiProtocol/GeminiDataTask.swift | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/GeminiProtocol/GeminiDataTask.swift b/GeminiProtocol/GeminiDataTask.swift index 6a1f198..352b2e7 100644 --- a/GeminiProtocol/GeminiDataTask.swift +++ b/GeminiProtocol/GeminiDataTask.swift @@ -19,6 +19,7 @@ public class GeminiDataTask { private let connection: NWConnection // todo: remove stupid hack when deployment target is >= iOS 15/macOS 12 private var _attribution: Any? = nil + #if os(iOS) @available(iOS 15.0, *) public var attribution: NWParameters.Attribution { get { @@ -28,6 +29,7 @@ public class GeminiDataTask { _attribution = newValue } } + #endif public init(request: GeminiRequest, completion: @escaping Completion) { self.request = request @@ -36,10 +38,6 @@ public class GeminiDataTask { let endpoint: NWEndpoint = .hostPort(host: NWEndpoint.Host(request.url.host!), port: NWEndpoint.Port(rawValue: port)!) self.connection = NWConnection(to: endpoint, using: .gemini) - if #available(iOS 15.0, *) { - connection.parameters.attribution = attribution - } - self.connection.stateUpdateHandler = { (newState) in switch newState { case .ready: @@ -65,6 +63,13 @@ public class GeminiDataTask { public func resume() { guard state == .unstarted else { return } + + #if os(iOS) + if #available(iOS 15.0, *) { + connection.parameters.attribution = attribution + } + #endif + state = .started connection.start(queue: GeminiDataTask.queue) }