|
1 | 1 | import Foundation
|
2 | 2 | import SystemConfiguration
|
3 | 3 |
|
4 |
| -let version = "0.2.0" |
| 4 | +let version = "0.3.0" |
5 | 5 |
|
6 | 6 | func main(_ args: [String]) {
|
7 | 7 | var port: Int = 0
|
@@ -51,32 +51,28 @@ func main(_ args: [String]) {
|
51 | 51 | let hardware = ((dict?["Interface"]) as? NSDictionary)?["Hardware"] as? String
|
52 | 52 | if hardware == "AirPort" || hardware == "Ethernet" {
|
53 | 53 | let ip = flag ? "127.0.0.1" : ""
|
54 |
| - let port0 = flag ? port : 0 |
55 |
| - let port1 = flag ? port + 1 : 0 |
56 | 54 | let enableInt = flag ? 1 : 0
|
57 |
| - let settings = [ |
58 |
| - kCFNetworkProxiesHTTPProxy as String : ip, |
59 |
| - kCFNetworkProxiesHTTPPort as String : port0, |
60 |
| - kCFNetworkProxiesHTTPEnable as String : enableInt, |
61 |
| - kCFNetworkProxiesHTTPSProxy as String : ip, |
62 |
| - kCFNetworkProxiesHTTPSPort as String : port0, |
63 |
| - kCFNetworkProxiesHTTPSEnable as String : enableInt, |
64 |
| - kCFNetworkProxiesSOCKSProxy as String : ip, |
65 |
| - kCFNetworkProxiesSOCKSPort as String : port1, |
66 |
| - kCFNetworkProxiesSOCKSEnable as String : enableInt, |
67 |
| - kCFNetworkProxiesExceptionsList as String : [ |
68 |
| - "192.168.0.0/16": |
69 |
| - "10.0.0.0/8", |
70 |
| - "172.16.0.0/12": |
71 |
| - "127.0.0.1", |
72 |
| - "localhost": |
73 |
| - "*.local" |
74 |
| - ] |
75 |
| - ] as [String : Any] |
76 |
| - let proxySettings = settings as CFDictionary |
77 | 55 |
|
| 56 | + var proxySettings: [String:AnyObject] = [:] |
| 57 | + proxySettings[kCFNetworkProxiesHTTPProxy as String] = ip as AnyObject |
| 58 | + proxySettings[kCFNetworkProxiesHTTPEnable as String] = enableInt as AnyObject |
| 59 | + proxySettings[kCFNetworkProxiesHTTPSProxy as String] = ip as AnyObject |
| 60 | + proxySettings[kCFNetworkProxiesHTTPSEnable as String] = enableInt as AnyObject |
| 61 | + proxySettings[kCFNetworkProxiesSOCKSProxy as String] = ip as AnyObject |
| 62 | + proxySettings[kCFNetworkProxiesSOCKSEnable as String] = enableInt as AnyObject |
| 63 | + if flag { |
| 64 | + proxySettings[kCFNetworkProxiesHTTPPort as String] = port as AnyObject |
| 65 | + proxySettings[kCFNetworkProxiesHTTPSPort as String] = port as AnyObject |
| 66 | + proxySettings[kCFNetworkProxiesSOCKSPort as String] = port + 1 as AnyObject |
| 67 | + } else { |
| 68 | + proxySettings[kCFNetworkProxiesHTTPPort as String] = nil |
| 69 | + proxySettings[kCFNetworkProxiesHTTPSPort as String] = nil |
| 70 | + proxySettings[kCFNetworkProxiesSOCKSPort as String] = nil |
| 71 | + |
| 72 | + } |
| 73 | + |
78 | 74 | let path = "/\(kSCPrefNetworkServices)/\(key)/\(kSCEntNetProxies)"
|
79 |
| - SCPreferencesPathSetValue(prefRef, path as CFString, proxySettings) |
| 75 | + SCPreferencesPathSetValue(prefRef, path as CFString, proxySettings as CFDictionary) |
80 | 76 | }
|
81 | 77 | }
|
82 | 78 |
|
|
0 commit comments