Skip to content
This repository was archived by the owner on Apr 16, 2020. It is now read-only.

Commit f69c8aa

Browse files
committed
Refine ProxyConfig behavior
1 parent 042f7c3 commit f69c8aa

File tree

2 files changed

+26
-24
lines changed

2 files changed

+26
-24
lines changed

Changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 0.6.0.beta12
2+
3+
### Fixed
4+
- Setting proxy won't error out proxy panel in system preference.
5+
- Unset system proxy will set port number to nil.
6+
17
## 0.6.0.beta11
28

39
### Fixed

ProxyConfig/main.swift

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Foundation
22
import SystemConfiguration
33

4-
let version = "0.2.0"
4+
let version = "0.3.0"
55

66
func main(_ args: [String]) {
77
var port: Int = 0
@@ -51,32 +51,28 @@ func main(_ args: [String]) {
5151
let hardware = ((dict?["Interface"]) as? NSDictionary)?["Hardware"] as? String
5252
if hardware == "AirPort" || hardware == "Ethernet" {
5353
let ip = flag ? "127.0.0.1" : ""
54-
let port0 = flag ? port : 0
55-
let port1 = flag ? port + 1 : 0
5654
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
7755

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+
7874
let path = "/\(kSCPrefNetworkServices)/\(key)/\(kSCEntNetProxies)"
79-
SCPreferencesPathSetValue(prefRef, path as CFString, proxySettings)
75+
SCPreferencesPathSetValue(prefRef, path as CFString, proxySettings as CFDictionary)
8076
}
8177
}
8278

0 commit comments

Comments
 (0)