From 8a68a3515b92460093c65f39d520b15d49a9f8ab Mon Sep 17 00:00:00 2001 From: noisyfox Date: Sat, 10 Dec 2016 01:50:28 +1100 Subject: [PATCH] Check server url before saving it Don't clear the textbox, focus it instead. We want the user to see the wrong input instead of a blank textbox. --- shadowsocks-csharp/Data/cn.txt | 1 + shadowsocks-csharp/Data/zh_tw.txt | 1 + shadowsocks-csharp/View/ConfigForm.cs | 20 +++++++++----------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/shadowsocks-csharp/Data/cn.txt b/shadowsocks-csharp/Data/cn.txt index 98cc98e0..8070afef 100644 --- a/shadowsocks-csharp/Data/cn.txt +++ b/shadowsocks-csharp/Data/cn.txt @@ -105,6 +105,7 @@ Reg All=注册全部热键 Shadowsocks Error: {0}=Shadowsocks 错误: {0} Port already in use=端口已被占用 +Invalid server address=非法服务器地址 Illegal port number format=非法端口格式 Illegal timeout format=非法超时格式 Please add at least one server=请添加至少一个服务器 diff --git a/shadowsocks-csharp/Data/zh_tw.txt b/shadowsocks-csharp/Data/zh_tw.txt index 17a13518..f2e02882 100644 --- a/shadowsocks-csharp/Data/zh_tw.txt +++ b/shadowsocks-csharp/Data/zh_tw.txt @@ -105,6 +105,7 @@ Reg All=註冊全部捷徑鍵 Shadowsocks Error: {0}=Shadowsocks 錯誤: {0} Port already in use=連接埠號碼已被占用 +Invalid server address=非法伺服器位址 Illegal port number format=非法連接埠號碼格式 Illegal timeout format=非法超時格式 Please add at least one server=請新增至少一個伺服器 diff --git a/shadowsocks-csharp/View/ConfigForm.cs b/shadowsocks-csharp/View/ConfigForm.cs index db695ae9..9c0ac555 100755 --- a/shadowsocks-csharp/View/ConfigForm.cs +++ b/shadowsocks-csharp/View/ConfigForm.cs @@ -80,28 +80,26 @@ namespace Shadowsocks.View return true; } Server server = new Server(); - server.server = IPTextBox.Text.Trim(); - try + + if (Uri.CheckHostName(server.server = IPTextBox.Text.Trim()) == UriHostNameType.Unknown) { - server.server_port = int.Parse(ServerPortTextBox.Text); + MessageBox.Show(I18N.GetString("Invalid server address")); + IPTextBox.Focus(); + return false; } - catch (FormatException) + if (!int.TryParse(ServerPortTextBox.Text, out server.server_port)) { MessageBox.Show(I18N.GetString("Illegal port number format")); - ServerPortTextBox.Clear(); + ServerPortTextBox.Focus(); return false; } server.password = PasswordTextBox.Text; server.method = EncryptionSelect.Text; server.remarks = RemarksTextBox.Text; - try - { - server.timeout = int.Parse(TimeoutTextBox.Text); - } - catch (FormatException) + if (!int.TryParse(TimeoutTextBox.Text, out server.timeout)) { MessageBox.Show(I18N.GetString("Illegal timeout format")); - TimeoutTextBox.Clear(); + TimeoutTextBox.Focus(); return false; } server.auth = OneTimeAuth.Checked;