diff --git a/shadowsocks-csharp/Controller/ShadowsocksController.cs b/shadowsocks-csharp/Controller/ShadowsocksController.cs index 14d705ed..f526671e 100755 --- a/shadowsocks-csharp/Controller/ShadowsocksController.cs +++ b/shadowsocks-csharp/Controller/ShadowsocksController.cs @@ -109,6 +109,10 @@ namespace Shadowsocks.Controller { return strategy.GetAServer(type, localIPEndPoint); } + if (_config.index < 0) + { + _config.index = 0; + } return GetCurrentServer(); } @@ -293,7 +297,8 @@ namespace Shadowsocks.Controller polipoRunner.Stop(); try { - foreach (var strategy in GetStrategies()) + var strategy = GetCurrentStrategy(); + if (strategy != null) { strategy.ReloadServers(); } diff --git a/shadowsocks-csharp/Model/Configuration.cs b/shadowsocks-csharp/Model/Configuration.cs index db7e2c85..e545582e 100755 --- a/shadowsocks-csharp/Model/Configuration.cs +++ b/shadowsocks-csharp/Model/Configuration.cs @@ -55,6 +55,13 @@ namespace Shadowsocks.Model { config.localPort = 1080; } + if (config.index == -1) + { + if (config.strategy == null) + { + config.index = 0; + } + } return config; } catch (Exception e) @@ -86,6 +93,13 @@ namespace Shadowsocks.Model { config.index = -1; } + if (config.index == -1) + { + if (config.strategy == null) + { + config.index = 0; + } + } config.isDefault = false; try {