@@ -14,27 +14,29 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
14
14
public func handle( _ call: FlutterMethodCall , result: @escaping FlutterResult ) {
15
15
switch call. method {
16
16
case " getDeviceProxy " :
17
- do {
18
- let args = call. arguments as! NSDictionary
19
- let url = args. value ( forKey: " url " ) as! String
20
- var dict : [ String : Any ] = [ : ]
21
- if ( SwiftFlutterSystemProxyPlugin . proxyCache [ url] != nil ) {
17
+ do {
18
+ let args = call. arguments as! NSDictionary
19
+ let url = args. value ( forKey: " url " ) as! String
20
+ var dict : [ String : Any ] = [ : ]
21
+ if ( SwiftFlutterSystemProxyPlugin . proxyCache [ url] != nil ) {
22
22
let res = SwiftFlutterSystemProxyPlugin . proxyCache [ url]
23
23
if ( res != nil ) {
24
24
dict = res as! [ String : Any ]
25
25
}
26
- } else {
27
- let res = try SwiftFlutterSystemProxyPlugin . resolve ( url: url)
28
- if ( res != nil ) {
26
+ }
27
+ else
28
+ {
29
+ let res = try SwiftFlutterSystemProxyPlugin . resolve ( url: url)
30
+ if ( res != nil ) {
29
31
dict = res as! [ String : Any ]
32
+ }
30
33
}
31
- }
32
- result ( dict)
34
+ result ( dict)
33
35
} catch let error {
34
36
print ( " Unexpected Proxy Error: \( error) . " )
35
37
result ( error)
36
38
}
37
- break
39
+ break
38
40
default :
39
41
result ( FlutterMethodNotImplemented)
40
42
}
@@ -67,7 +69,7 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
67
69
SwiftFlutterSystemProxyPlugin . proxyCache [ url] = dict
68
70
}
69
71
}
70
- return proxyCache [ url]
72
+ return SwiftFlutterSystemProxyPlugin . proxyCache [ url]
71
73
}
72
74
73
75
static func handlePacContent( pacContent: String , url: String ) {
@@ -88,8 +90,9 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
88
90
static func handlePacUrl( pacUrl: String , url: String ) {
89
91
var _pacUrl = CFURLCreateWithString ( kCFAllocatorDefault, pacUrl as CFString ? , nil )
90
92
var targetUrl = CFURLCreateWithString ( kCFAllocatorDefault, url as CFString ? , nil )
93
+ var info = url;
91
94
if ( pacUrl != nil && targetUrl != nil ) {
92
- var context : CFStreamClientContext = CFStreamClientContext . init ( version: 0 , info: & targetUrl , retain: nil , release: nil , copyDescription: nil )
95
+ var context : CFStreamClientContext = CFStreamClientContext . init ( version: 0 , info: & info , retain: nil , release: nil , copyDescription: nil )
93
96
let runLoopSource = CFNetworkExecuteProxyAutoConfigurationURL ( _pacUrl!, targetUrl!, { client, proxies, error in
94
97
let _proxies = proxies as? [ [ CFString : Any ] ] ?? [ ] ;
95
98
if ( _proxies != nil ) {
@@ -101,15 +104,8 @@ public class SwiftFlutterSystemProxyPlugin: NSObject, FlutterPlugin {
101
104
var dict : [ String : Any ] = [ : ]
102
105
dict [ " host " ] = host
103
106
dict [ " port " ] = port
104
- let context = client. assumingMemoryBound ( to: CFStreamClientContext . self) . pointee
105
- let url = context. info. assumingMemoryBound ( to: CFURL . self) . pointee
106
- do {
107
- let urlString = CFURLGetString ( url) ;
108
- SwiftFlutterSystemProxyPlugin . proxyCache [ urlString as! String ] = dict
109
- print ( url)
110
- } catch error {
111
- print ( error)
112
- }
107
+ let url = client. assumingMemoryBound ( to: String . self) . pointee
108
+ SwiftFlutterSystemProxyPlugin . proxyCache [ url] = dict
113
109
}
114
110
}
115
111
}
0 commit comments