Skip to content

Commit fe35bc2

Browse files
committed
Add: shadowsocks_sysconf off/auto/global mode
1 parent 6d9f9b0 commit fe35bc2

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ build
22
.idea/
33
shadowsocks.xcodeproj/project.xcworkspace/
44
shadowsocks.xcodeproj/xcuserdata/
5+
.DS_STORE

shadowsocks_sysconf/main.m

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@
1212
int main(int argc, const char * argv[])
1313
{
1414
if (argc != 2) {
15-
printf("usage: shadowsocks_sysconf on/off\n");
15+
printf("usage: shadowsocks_sysconf off/auto/global\n");
1616
return 1;
1717
}
1818
@autoreleasepool {
19+
NSString *on = [NSString stringWithUTF8String:argv[1]];
20+
/*
1921
BOOL on;
2022
if (strcmp(argv[1], "on") == 0) {
2123
on = YES;
@@ -24,7 +26,7 @@ int main(int argc, const char * argv[])
2426
} else {
2527
printf("usage: shadowsocks_sysconf on/off\n");
2628
return 1;
27-
}
29+
}*/
2830
static AuthorizationRef authRef;
2931
static AuthorizationFlags authFlags;
3032
authFlags = kAuthorizationFlagDefaults
@@ -56,10 +58,24 @@ int main(int argc, const char * argv[])
5658
NSString *hardware = [dict valueForKeyPath:@"Interface.Hardware"];
5759
// NSLog(@"%@", hardware);
5860
if ([hardware isEqualToString:@"AirPort"] || [hardware isEqualToString:@"Wi-Fi"] || [hardware isEqualToString:@"Ethernet"]) {
59-
if (on) {
61+
62+
if ([on isEqualToString:@"auto"]) {
63+
6064
[proxies setObject:@"http://127.0.0.1:8090/proxy.pac" forKey:(NSString *)kCFNetworkProxiesProxyAutoConfigURLString];
65+
[proxies setObject:[NSNumber numberWithInt:1] forKey:(NSString *)kCFNetworkProxiesProxyAutoConfigEnable];
66+
67+
} else if ([on isEqualToString:@"global"]) {
68+
69+
70+
[proxies setObject:@"127.0.0.1" forKey:(NSString *)
71+
kCFNetworkProxiesSOCKSProxy];
72+
[proxies setObject:[NSNumber numberWithInteger:1080] forKey:(NSString*)
73+
kCFNetworkProxiesSOCKSPort];
74+
[proxies setObject:[NSNumber numberWithInt:1] forKey:(NSString*)
75+
kCFNetworkProxiesSOCKSEnable];
76+
6177
}
62-
[proxies setObject:[NSNumber numberWithInteger:(NSInteger)on] forKey:(NSString *)kCFNetworkProxiesProxyAutoConfigEnable];
78+
6379
SCPreferencesPathSetValue(prefRef, (__bridge CFStringRef)[NSString stringWithFormat:@"/%@/%@/%@", kSCPrefNetworkServices, key, kSCEntNetProxies], (__bridge CFDictionaryRef)proxies);
6480
}
6581
}
@@ -69,12 +85,14 @@ int main(int argc, const char * argv[])
6985
SCPreferencesSynchronize(prefRef);
7086

7187
}
88+
/*
7289
if (on) {
7390
printf("pac proxy set to on\n");
7491
} else {
7592
printf("pac proxy set to off\n");
7693
}
77-
94+
*/
95+
printf("pac proxy set to %s", [on UTF8String]);
7896
}
7997

8098
return 0;

0 commit comments

Comments
 (0)