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
This commit is contained in:
Jonathan Nobels
2025-05-02 16:58:20 -04:00
committed by Jonathan Nobels
parent 0b970d454c
commit 66906566f8
3 changed files with 9 additions and 11 deletions

View File

@@ -5,7 +5,7 @@ import SwiftUI
@main
struct HelloFromTailscaleApp: App {
let manager = HelloManager()
let manager = HelloManager.shared
var body: some Scene {
WindowGroup {

View File

@@ -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!)")")

View File

@@ -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
}