diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 5a6aed5..02017eb 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -54,6 +54,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele "ShadowsocksRunningMode": "auto", "LocalSocks5.ListenPort": NSNumber(unsignedShort: 1086), "LocalSocks5.ListenAddress": "127.0.0.1", + "PacServer.ListenAddress": "127.0.0.1", + "PacServer.ListenPort":NSNumber(unsignedShort: 8090), "LocalSocks5.Timeout": NSNumber(unsignedInteger: 60), "LocalSocks5.EnableUDPRelay": NSNumber(bool: false), "LocalSocks5.EnableVerboseMode": NSNumber(bool: false), @@ -86,6 +88,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele , usingBlock: { (note) in SyncSSLocal() + self.applyConfig() } ) notifyCenter.addObserverForName("NOTIFY_FOUND_SS_URL", object: nil, queue: nil) { @@ -148,6 +151,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele ProxyConfHelper.disableProxy("hi") let defaults = NSUserDefaults.standardUserDefaults() defaults.setBool(false, forKey: "ShadowsocksOn") + ProxyConfHelper.stopPACServer() } func applyConfig() { diff --git a/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib b/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib index 7b76e43..e50b94b 100644 --- a/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib +++ b/ShadowsocksX-NG/Base.lproj/AdvPreferencesWindowController.xib @@ -1,5 +1,5 @@ - + @@ -14,10 +14,10 @@ - + - + @@ -56,7 +56,7 @@ - + @@ -64,13 +64,13 @@ - + - + @@ -78,7 +78,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -135,7 +135,7 @@ - + @@ -174,6 +174,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -220,7 +262,7 @@ - + diff --git a/ShadowsocksX-NG/Base.lproj/UserRulesController.xib b/ShadowsocksX-NG/Base.lproj/UserRulesController.xib index 08a10c6..e1b94bd 100644 --- a/ShadowsocksX-NG/Base.lproj/UserRulesController.xib +++ b/ShadowsocksX-NG/Base.lproj/UserRulesController.xib @@ -16,7 +16,7 @@ - + @@ -51,17 +51,17 @@ Gw - + - + - + - + @@ -72,7 +72,7 @@ Gw - + diff --git a/ShadowsocksX-NG/ProxyConfHelper.m b/ShadowsocksX-NG/ProxyConfHelper.m index bbbbcfb..9c57b61 100644 --- a/ShadowsocksX-NG/ProxyConfHelper.m +++ b/ShadowsocksX-NG/ProxyConfHelper.m @@ -173,14 +173,18 @@ GCDWebServer *webServer =nil; return [GCDWebServerDataResponse responseWithData: originalPACData contentType:@"application/x-ns-proxy-autoconfig"]; } ]; - int port = 8090; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString * address = [defaults stringForKey:@"PacServer.ListenAddress"]; + int port = (short)[defaults integerForKey:@"PacServer.ListenPort"]; [webServer startWithPort:port bonjourName:@"webserver"]; - return [NSString stringWithFormat:@"%@%d%@",@"http://127.0.0.1:",port,routerPath]; + return [NSString stringWithFormat:@"%@%@:%d%@",@"http://",address,port,routerPath]; } + (void)stopPACServer { //原版似乎没有处理这个,本来设计计划如果切换到全局模式或者手动模式就关掉webserver 似乎没有这个必要了? - [webServer stop]; + if ([webServer isRunning]) { + [webServer stop]; + } } @end diff --git a/ShadowsocksX-NG/SWBQRCodeWindowController.xib b/ShadowsocksX-NG/SWBQRCodeWindowController.xib index 623ae20..fa2f1ad 100644 --- a/ShadowsocksX-NG/SWBQRCodeWindowController.xib +++ b/ShadowsocksX-NG/SWBQRCodeWindowController.xib @@ -1,5 +1,5 @@ - +