From 3aa325edec82d34345b23f93ba78e85a3853da5f Mon Sep 17 00:00:00 2001 From: York Xiang Date: Fri, 16 Jan 2015 23:01:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=20QRcode=20=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E8=A7=A3=E6=9E=90=E4=B8=AD=E5=AF=86=E7=A0=81=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E5=B8=A6@=E7=AC=A6=E5=8F=B7=E3=80=81=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E5=90=8D=E5=8F=AF=E8=83=BD=E5=B8=A6=E5=86=92?= =?UTF-8?q?=E5=8F=B7=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关掉 https://github.com/shadowsocks/shadowsocks-csharp/issues/131 我就是爱用中文,哼~ --- shadowsocks-csharp/Model/Server.cs | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/shadowsocks-csharp/Model/Server.cs b/shadowsocks-csharp/Model/Server.cs index b4486db9..18f28aff 100755 --- a/shadowsocks-csharp/Model/Server.cs +++ b/shadowsocks-csharp/Model/Server.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; using System.IO; @@ -50,7 +50,8 @@ namespace Shadowsocks.Model string[] r1 = Regex.Split(ssURL, "ss://", RegexOptions.IgnoreCase); string base64 = r1[1].ToString(); byte[] bytes = null; - for (var i = 0; i < 3; i++) { + for (var i = 0; i < 3; i++) + { try { bytes = System.Convert.FromBase64String(base64); @@ -64,11 +65,25 @@ namespace Shadowsocks.Model { throw new FormatException(); } - string[] parts = Encoding.UTF8.GetString(bytes).Split(new char[2] { ':', '@' }); - this.method = parts[0].ToString(); - this.password = parts[1].ToString(); - this.server = parts[2].ToString(); - this.server_port = int.Parse(parts[3].ToString()); + try + { + string data = Encoding.UTF8.GetString(bytes); + int indexLastAt = data.LastIndexOf('@'); + + string afterAt = data.Substring(indexLastAt + 1); + int indexLastComma = afterAt.LastIndexOf(':'); + this.server_port = int.Parse(afterAt.Substring(indexLastComma + 1)); + this.server = afterAt.Substring(0, indexLastComma); + + string beforeAt = data.Substring(0, indexLastAt); + string[] parts = beforeAt.Split(new[] { ':' }); + this.method = parts[0]; + this.password = parts[1]; + } + catch (IndexOutOfRangeException) + { + throw new FormatException(); + } } } } From 32941478d7cb87147ed3478d1e3daf7de5b9968f Mon Sep 17 00:00:00 2001 From: York Xiang Date: Fri, 16 Jan 2015 23:19:19 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=86=92=E5=8F=B7=E5=86=99=E6=88=90?= =?UTF-8?q?=E9=80=97=E5=8F=B7=E4=BA=86=EF=BC=8C=E6=88=91=E9=94=99=E4=BA=86?= =?UTF-8?q?=E2=80=A6=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shadowsocks-csharp/Model/Server.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shadowsocks-csharp/Model/Server.cs b/shadowsocks-csharp/Model/Server.cs index 18f28aff..00209d11 100755 --- a/shadowsocks-csharp/Model/Server.cs +++ b/shadowsocks-csharp/Model/Server.cs @@ -71,9 +71,9 @@ namespace Shadowsocks.Model int indexLastAt = data.LastIndexOf('@'); string afterAt = data.Substring(indexLastAt + 1); - int indexLastComma = afterAt.LastIndexOf(':'); - this.server_port = int.Parse(afterAt.Substring(indexLastComma + 1)); - this.server = afterAt.Substring(0, indexLastComma); + int indexLastColon = afterAt.LastIndexOf(':'); + this.server_port = int.Parse(afterAt.Substring(indexLastColon + 1)); + this.server = afterAt.Substring(0, indexLastColon); string beforeAt = data.Substring(0, indexLastAt); string[] parts = beforeAt.Split(new[] { ':' });