Adds exception rules config for Global Mode
This commit is contained in:
@ -114,6 +114,24 @@ GCDWebServer *webServer =nil;
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)addArguments4ManualSpecifyProxyExceptions:(NSMutableArray*) args {
|
||||
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
NSString* rawExceptions = [defaults stringForKey:@"ProxyExceptions"];
|
||||
if (rawExceptions) {
|
||||
NSCharacterSet* seps = [NSCharacterSet characterSetWithCharactersInString:@", 、"];
|
||||
NSCharacterSet* whites = [NSCharacterSet whitespaceAndNewlineCharacterSet];
|
||||
NSArray* exceptions = [rawExceptions componentsSeparatedByCharactersInSet:seps];
|
||||
for (NSString* rawDomainOrHost in exceptions) {
|
||||
NSString* domainOrHost = [rawDomainOrHost stringByTrimmingCharactersInSet:whites];
|
||||
if ([domainOrHost length] > 0) {
|
||||
[args addObject:@"-x"];
|
||||
[args addObject:domainOrHost];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+ (NSString*)getPACFilePath {
|
||||
return [NSString stringWithFormat:@"%@/%@", NSHomeDirectory(), @".ShadowsocksX-NG/gfwlist.js"];
|
||||
}
|
||||
@ -129,6 +147,7 @@ GCDWebServer *webServer =nil;
|
||||
NSMutableArray* args = [@[@"--mode", @"auto", @"--pac-url", [url absoluteString]]mutableCopy];
|
||||
|
||||
[self addArguments4ManualSpecifyNetworkServices:args];
|
||||
[self addArguments4ManualSpecifyProxyExceptions:args];
|
||||
[self callHelper:args];
|
||||
}
|
||||
|
||||
@ -148,6 +167,7 @@ GCDWebServer *webServer =nil;
|
||||
// }
|
||||
|
||||
[self addArguments4ManualSpecifyNetworkServices:args];
|
||||
[self addArguments4ManualSpecifyProxyExceptions:args];
|
||||
[self callHelper:args];
|
||||
[self stopPACServer];
|
||||
}
|
||||
@ -162,6 +182,7 @@ GCDWebServer *webServer =nil;
|
||||
, @"--pac-url", [url absoluteString]
|
||||
]mutableCopy];
|
||||
[self addArguments4ManualSpecifyNetworkServices:args];
|
||||
[self addArguments4ManualSpecifyProxyExceptions:args];
|
||||
[self callHelper:args];
|
||||
[self stopPACServer];
|
||||
}
|
||||
|
Reference in New Issue
Block a user