Browse Source

Merge pull request #437 from NanaLich/master

more unnecessary optimize
tags/3.0
Gang Zhuo 9 years ago
parent
commit
6a8f554c06
2 changed files with 25 additions and 16 deletions
  1. +17
    -11
      shadowsocks-csharp/Controller/Service/GfwListUpdater.cs
  2. +8
    -5
      shadowsocks-csharp/Controller/ShadowsocksController.cs

+ 17
- 11
shadowsocks-csharp/Controller/Service/GfwListUpdater.cs View File

@@ -39,12 +39,15 @@ namespace Shadowsocks.Controller
if (File.Exists(PACServer.USER_RULE_FILE)) if (File.Exists(PACServer.USER_RULE_FILE))
{ {
string local = File.ReadAllText(PACServer.USER_RULE_FILE, Encoding.UTF8); string local = File.ReadAllText(PACServer.USER_RULE_FILE, Encoding.UTF8);
string[] rules = local.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string rule in rules)
using (var sr = new StringReader(local))
{ {
if (rule[0] == '!' || rule[0] == '[')
continue;
lines.Add(rule);
string rule;
while ((rule = sr.ReadLine()) != null)
{
if (rule == "" || rule[0] == '!' || rule[0] == '[')
continue;
lines.Add(rule);
}
} }
} }
string abpContent; string abpContent;
@@ -93,13 +96,16 @@ namespace Shadowsocks.Controller
{ {
byte[] bytes = Convert.FromBase64String(response); byte[] bytes = Convert.FromBase64String(response);
string content = Encoding.ASCII.GetString(bytes); string content = Encoding.ASCII.GetString(bytes);
string[] lines = content.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
List<string> valid_lines = new List<string>(lines.Length);
foreach (string line in lines)
List<string> valid_lines = new List<string>();
using (var sr = new StringReader(content))
{ {
if (line[0] == '!' || line[0] == '[')
continue;
valid_lines.Add(line);
string line;
while ((line = sr.ReadLine()) != null)
{
if (line == "" || line[0] == '!' || line[0] == '[')
continue;
valid_lines.Add(line);
}
} }
return valid_lines; return valid_lines;
} }


+ 8
- 5
shadowsocks-csharp/Controller/ShadowsocksController.cs View File

@@ -454,12 +454,15 @@ namespace Shadowsocks.Controller
if (File.Exists(PACServer.USER_RULE_FILE)) if (File.Exists(PACServer.USER_RULE_FILE))
{ {
string local = File.ReadAllText(PACServer.USER_RULE_FILE, Encoding.UTF8); string local = File.ReadAllText(PACServer.USER_RULE_FILE, Encoding.UTF8);
string[] rules = local.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string rule in rules)
using (var sr = new StringReader(local))
{ {
if (rule[0] == '!' || rule[0] == '[')
continue;
lines.Add(rule);
string rule;
while ((rule = sr.ReadLine()) != null)
{
if (rule == "" || rule[0] == '!' || rule[0] == '[')
continue;
lines.Add(rule);
}
} }
} }
string abpContent; string abpContent;


Loading…
Cancel
Save