Browse Source

geosite should pass as whitelist

tags/4.2.0.0
Student Main 4 years ago
parent
commit
d92b04f944
2 changed files with 13 additions and 6 deletions
  1. +9
    -6
      shadowsocks-csharp/Controller/Service/GeositeUpdater.cs
  2. +4
    -0
      shadowsocks-csharp/Data/abp.js

+ 9
- 6
shadowsocks-csharp/Controller/Service/GeositeUpdater.cs View File

@@ -167,7 +167,10 @@ var __RULES__ = {JsonConvert.SerializeObject(gfwLines, Formatting.Indented)};

private static List<string> ParseToValidList(IList<DomainObject> domains)
{
List<string> ret = new List<string>(domains.Count + 100); // 100 overhead
List<string> ret = new List<string>(domains.Count + 100)// 100 overhead
{
"/.*/" // match any domain, so all non-cn domain go through proxy
};
foreach (var d in domains)
{
string domain = d.Value;
@@ -175,17 +178,17 @@ var __RULES__ = {JsonConvert.SerializeObject(gfwLines, Formatting.Indented)};
switch (d.Type)
{
case DomainObject.Types.Type.Plain:
ret.Add(domain);
ret.Add($"@@{domain}");
break;
case DomainObject.Types.Type.Regex:
ret.Add($"/{domain}/");
ret.Add($"@@/{domain}/");
break;
case DomainObject.Types.Type.Domain:
ret.Add($"||{domain}");
ret.Add($"@@||{domain}");
break;
case DomainObject.Types.Type.Full:
ret.Add($"|http://{domain}");
ret.Add($"|https://{domain}");
ret.Add($"@@|http://{domain}");
ret.Add($"@@|https://{domain}");
break;
}
}


+ 4
- 0
shadowsocks-csharp/Data/abp.js View File

@@ -786,6 +786,10 @@ function FindProxyForURL(url, host) {
if (userrulesMatcher.matchesAny(url, host) instanceof WhitelistFilter) {
return direct;
}
// Hack for Geosite, it provides a whitelist...
if (defaultMatcher.matchesAny(url, host) instanceof WhitelistFilter) {
return direct;
}
if (defaultMatcher.matchesAny(url, host) instanceof BlockingFilter) {
return proxy;
}


Loading…
Cancel
Save