Skip to content

Commit

Permalink
to support empty passwd by issue shadowsocksr-backup#3
Browse files Browse the repository at this point in the history
  • Loading branch information
CGS小管家 committed Jan 26, 2019
1 parent d70cc73 commit 705a459
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 6 deletions.
1 change: 1 addition & 0 deletions shadowsocks-csharp/Data/cn.txt
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ Illegal port number format=非法端口格式
Please add at least one server=请添加至少一个服务器
Server IP can not be blank=服务器 IP 不能为空
Password can not be blank=密码不能为空
Password are blank=密码为空
Port out of range=端口超出范围
{0} {1} Update Found={0} {1} 更新
Click menu to download=点击菜单项下载
Expand Down
1 change: 1 addition & 0 deletions shadowsocks-csharp/Data/zh-tw.txt
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ Illegal port number format=非法連接埠格式
Please add at least one server=請添加至少一個伺服器
Server IP can not be blank=伺服器 IP 不能為空
Password can not be blank=密碼不能為空
Password are blank=密碼為空
Port out of range=連接埠超出範圍
{0} {1} Update Found={0} {1} 更新
Click menu to download=點擊菜單項下載
Expand Down
41 changes: 35 additions & 6 deletions shadowsocks-csharp/Model/Configuration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,27 @@ public class GlobalConfiguration
public static string config_password = "";
}

[Serializable()]
class ConfigurationException : System.Exception
{
public ConfigurationException() : base() { }
public ConfigurationException(string message) : base(message) { }
public ConfigurationException(string message, System.Exception inner) : base(message, inner) { }
protected ConfigurationException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{ }
}
[Serializable()]
class ConfigurationWarning : System.Exception
{
public ConfigurationWarning() : base() { }
public ConfigurationWarning(string message) : base(message) { }
public ConfigurationWarning(string message, System.Exception inner) : base(message, inner) { }
protected ConfigurationWarning(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{ }
}

[Serializable]
public class Configuration
{
Expand Down Expand Up @@ -219,7 +240,7 @@ public Server GetCurrentServer(int localPort, ServerSelectStrategy.FilterFunc fi
if (selServer != null)
return selServer.group == server.group;
return false;
} , true);
}, true);
}
else
{
Expand Down Expand Up @@ -370,7 +391,15 @@ public static void CheckServer(Server server)
CheckPort(server.server_port);
if (server.server_udp_port != 0)
CheckPort(server.server_udp_port);
CheckPassword(server.password);
try
{
CheckPassword(server.password);
}
catch (ConfigurationWarning cw)
{
server.password = "";
MessageBox.Show(cw.Message, cw.Message, MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
CheckServer(server.server);
}

Expand Down Expand Up @@ -619,23 +648,23 @@ public static void CheckPort(int port)
{
if (port <= 0 || port > 65535)
{
throw new ArgumentException(I18N.GetString("Port out of range"));
throw new ConfigurationException(I18N.GetString("Port out of range"));
}
}

private static void CheckPassword(string password)
{
if (string.IsNullOrEmpty(password))
{
throw new ArgumentException(I18N.GetString("Password can not be blank"));
throw new ConfigurationWarning(I18N.GetString("Password are blank"));
}
}

private static void CheckServer(string server)
{
if (string.IsNullOrEmpty(server))
{
throw new ArgumentException(I18N.GetString("Server IP can not be blank"));
throw new ConfigurationException(I18N.GetString("Server IP can not be blank"));
}
}

Expand Down Expand Up @@ -798,7 +827,7 @@ public void AddDownload(string server, Int64 size)
if (--saveCounter <= 0)
{
saveCounter = 256;
if ((DateTime.Now - saveTime).TotalMinutes > 10 )
if ((DateTime.Now - saveTime).TotalMinutes > 10)
{
lock (servers)
{
Expand Down

0 comments on commit 705a459

Please sign in to comment.