From 2099db774b03bd74292e73ec986d167f2782ec8d Mon Sep 17 00:00:00 2001 From: Kebin Liu Date: Thu, 17 Jan 2019 23:49:57 +0800 Subject: [PATCH] Update ProxyConfHelper.m Fixes PAC file did not update in the web server response when update the user customize rules. --- ShadowsocksX-NG/ProxyConfHelper.m | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/ShadowsocksX-NG/ProxyConfHelper.m b/ShadowsocksX-NG/ProxyConfHelper.m index fdcbfab..a6196c5 100644 --- a/ShadowsocksX-NG/ProxyConfHelper.m +++ b/ShadowsocksX-NG/ProxyConfHelper.m @@ -245,13 +245,16 @@ GCDWebServer *webServer =nil; if(flags & DISPATCH_VNODE_DELETE) { dispatch_source_cancel(source); - } else { - NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; - if ([defaults boolForKey:@"ShadowsocksOn"]) { - if ([[defaults stringForKey:@"ShadowsocksRunningMode"] isEqualToString:@"auto"]) { - [ProxyConfHelper disableProxy]; - [ProxyConfHelper enablePACProxy]; - } + } + + // The PAC file was written by atomically (PACUtils.swift:134) + // That means DISPATCH_VNODE_DELETE event always be trigged + // Need to be run the following statements in any events + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; + if ([defaults boolForKey:@"ShadowsocksOn"]) { + if ([[defaults stringForKey:@"ShadowsocksRunningMode"] isEqualToString:@"auto"]) { + [ProxyConfHelper disableProxy]; + [ProxyConfHelper enablePACProxy]; } } });