Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed31a3cab0 | ||
|
|
081bbaf011 | ||
|
|
0251130fa5 | ||
|
|
f0b196c8c3 | ||
|
|
057b148092 | ||
|
|
101c33d0f1 |
@@ -1,3 +1,7 @@
|
||||
4.0.5 2017-08-09
|
||||
- Fix crash when user-wininet.json fail to parse. (#1178)
|
||||
- Bug fixes and improvements.
|
||||
|
||||
4.0.4 2017-06-01
|
||||
- Save user wininet settings as user-wininet.json
|
||||
- Improve performance of aes-256-gcm
|
||||
|
||||
@@ -18,6 +18,10 @@ Shadowsocks for Windows
|
||||
|
||||
Download the [latest release].
|
||||
|
||||
#### Requirements
|
||||
|
||||
Microsoft [.NET Framework 4.6.2] or higher.
|
||||
|
||||
#### Basic
|
||||
|
||||
1. Find Shadowsocks icon in the notification tray
|
||||
@@ -104,5 +108,6 @@ GPLv3
|
||||
[GFWList]: https://github.com/gfwlist/gfwlist
|
||||
[Servers]: https://github.com/shadowsocks/shadowsocks/wiki/Ports-and-Clients#linux--server-side
|
||||
[中文说明]: https://github.com/shadowsocks/shadowsocks-windows/wiki/Shadowsocks-Windows-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
|
||||
[.NET Framework 4.6.2]: https://www.microsoft.com/en-US/download/details.aspx?id=53344
|
||||
[Visual Studio 2015]: https://www.visualstudio.com/downloads/
|
||||
[.NET Framework 4.6.2 Developer Pack]: https://www.microsoft.com/download/details.aspx?id=53321
|
||||
[.NET Framework 4.6.2 Developer Pack]: https://www.microsoft.com/download/details.aspx?id=53321
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Shadowsocks.Controller
|
||||
public string LatestVersionLocalName;
|
||||
public event EventHandler CheckUpdateCompleted;
|
||||
|
||||
public const string Version = "4.0.4";
|
||||
public const string Version = "4.0.5";
|
||||
|
||||
private class CheckUpdateTimer : System.Timers.Timer
|
||||
{
|
||||
|
||||
@@ -89,7 +89,10 @@ namespace Shadowsocks.Model
|
||||
configs = new List<Server>()
|
||||
{
|
||||
GetDefaultServer()
|
||||
}
|
||||
},
|
||||
logViewer = new LogViewerConfig(),
|
||||
proxy = new ProxyConfig(),
|
||||
hotkey = new HotkeyConfig()
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,10 @@ namespace Shadowsocks.Util.Sockets
|
||||
arg.Completed += OnTcpConnectCompleted;
|
||||
arg.UserToken = new TcpUserToken(callback, state);
|
||||
|
||||
Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, arg);
|
||||
if(!Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, arg))
|
||||
{
|
||||
OnTcpConnectCompleted(this, arg);
|
||||
}
|
||||
}
|
||||
|
||||
private class FakeAsyncResult : IAsyncResult
|
||||
|
||||
@@ -48,14 +48,15 @@ namespace Shadowsocks.Util.SystemProxy
|
||||
public static void SetIEProxy(bool enable, bool global, string proxyServer, string pacURL)
|
||||
{
|
||||
Read();
|
||||
|
||||
if (!_userSettings.UserSettingsRecorded)
|
||||
{
|
||||
// record user settings
|
||||
ExecSysproxy("query");
|
||||
ParseQueryStr(_queryStr);
|
||||
}
|
||||
string arguments;
|
||||
|
||||
string arguments;
|
||||
if (enable)
|
||||
{
|
||||
arguments = global
|
||||
@@ -138,8 +139,10 @@ namespace Shadowsocks.Util.SystemProxy
|
||||
try {
|
||||
string configContent = File.ReadAllText(_userWininetConfigFile);
|
||||
_userSettings = JsonConvert.DeserializeObject<SysproxyConfig>(configContent);
|
||||
} catch (FileNotFoundException) {
|
||||
_userSettings = new SysproxyConfig();
|
||||
} catch(Exception) {
|
||||
// Suppress all exceptions. finally block will initialize new user config settings.
|
||||
} finally {
|
||||
if (_userSettings == null) _userSettings = new SysproxyConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user