From fbab868bda2be2c2565962e146ea52c5542a652c Mon Sep 17 00:00:00 2001 From: Jonathan Nobels Date: Fri, 2 May 2025 16:58:20 -0400 Subject: [PATCH] swift: fix proxy settings updates tailscale/tailscale#15802 Updates the proxy settings. These more modern constants work with both macOS and iOS, for both localapi and NSURLConnection socks to tailnet URLs --- .../HelloFromTailscale/HelloFromTailscaleApp.swift | 2 +- .../HelloFromTailscale/HelloManager.swift | 5 ++++- swift/TailscaleKit/URLSession+Tailscale.swift | 13 ++++--------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloFromTailscaleApp.swift b/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloFromTailscaleApp.swift index 0e4dc50..878d482 100644 --- a/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloFromTailscaleApp.swift +++ b/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloFromTailscaleApp.swift @@ -5,7 +5,7 @@ import SwiftUI @main struct HelloFromTailscaleApp: App { - let manager = HelloManager() + let manager = HelloManager.shared var body: some Scene { WindowGroup { diff --git a/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloManager.swift b/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloManager.swift index 66b21ec..a41812b 100644 --- a/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloManager.swift +++ b/swift/Examples/TailscaleKitHello/HelloFromTailscale/HelloManager.swift @@ -25,6 +25,8 @@ protocol Dialer: Actor { actor HelloManager: Dialer { var node: TailscaleNode? + static let shared = HelloManager() + let logger = Logger() let config: Configuration @@ -110,7 +112,8 @@ actor HelloManager: Dialer { // Request a resource from the tailnet... let url = URL(string: Settings.tailnetServer)! - let req = URLRequest(url: url) + var req = URLRequest(url: url) + let (data, _) = try await session.data(for: req) await setMessage("\(Settings.tailnetServer) says:\n \(String(data: data, encoding: .utf8) ?? "(crickets!)")") diff --git a/swift/TailscaleKit/URLSession+Tailscale.swift b/swift/TailscaleKit/URLSession+Tailscale.swift index 7a626e0..36bcc3d 100644 --- a/swift/TailscaleKit/URLSession+Tailscale.swift +++ b/swift/TailscaleKit/URLSession+Tailscale.swift @@ -20,21 +20,16 @@ public extension URLSessionConfiguration { } - var config: [CFString: Any] = [ + let config: [CFString: Any] = [ kCFProxyTypeKey: kCFProxyTypeSOCKS, kCFProxyUsernameKey: "tsnet", kCFProxyPasswordKey: proxyConfig.proxyCredential, - kCFNetworkProxiesHTTPEnable: true, - kCFNetworkProxiesHTTPProxy: ip, - kCFNetworkProxiesHTTPPort: port, + kCFProxyHostNameKey: ip, + kCFProxyPortNumberKey: port ] - #if os(macOS) - config[kCFNetworkProxiesHTTPSEnable] = true - #endif - self.connectionProxyDictionary = config - + return proxyConfig }