Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions shadowsocks-csharp/Controller/Service/AvailabilityStatistics.cs
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ private void ping_Completed(object sender, MyPing.CompletedEventArgs e)
{
AppendRecord(server.Identifier(), record);
}
logger.Debug($"Ping {server.FriendlyName()} {e.RoundtripTime.Count} times, {(100 - record.PackageLoss * 100)}% packages loss, min {record.MinResponse} ms, max {record.MaxResponse} ms, avg {record.AverageResponse} ms");
logger.Debug($"Ping {server} {e.RoundtripTime.Count} times, {(100 - record.PackageLoss * 100)}% packages loss, min {record.MinResponse} ms, max {record.MaxResponse} ms, avg {record.AverageResponse} ms");
if (Interlocked.Decrement(ref state.counter) == 0)
{
Save();
Expand Down Expand Up @@ -450,7 +450,7 @@ private void ICMPTest(int delay, object userstate)
{
try
{
logger.Debug($"Ping {server.FriendlyName()}");
logger.Debug($"Ping {server}");
if (ip == null)
{
ip = Dns.GetHostAddresses(server.server)
Expand All @@ -466,7 +466,7 @@ private void ICMPTest(int delay, object userstate)
}
catch (Exception e)
{
logger.Error($"An exception occured while eveluating {server.FriendlyName()}");
logger.Error($"An exception occured while eveluating {server}");
logger.LogUsefulException(e);
FireCompleted(e, userstate);
}
Expand All @@ -478,19 +478,19 @@ private void Ping_PingCompleted(object sender, PingCompletedEventArgs e)
{
if (e.Reply.Status == IPStatus.Success)
{
logger.Debug($"Ping {server.FriendlyName()} {e.Reply.RoundtripTime} ms");
logger.Debug($"Ping {server} {e.Reply.RoundtripTime} ms");
RoundtripTime.Add((int?)e.Reply.RoundtripTime);
}
else
{
logger.Debug($"Ping {server.FriendlyName()} timeout");
logger.Debug($"Ping {server} timeout");
RoundtripTime.Add(null);
}
TestNext(e.UserState);
}
catch (Exception ex)
{
logger.Error($"An exception occured while eveluating {server.FriendlyName()}");
logger.Error($"An exception occured while eveluating {server}");
logger.LogUsefulException(ex);
FireCompleted(ex, e.UserState);
}
Expand Down
4 changes: 2 additions & 2 deletions shadowsocks-csharp/Controller/Service/TCPRelay.cs
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ private void DestConnectTimer_Elapsed(object sender, ElapsedEventArgs e)
AsyncSession session = timer.Session;
Server server = timer.Server;
OnFailed?.Invoke(this, new SSRelayEventArgs(_server));
Logger.Info($"{server.FriendlyName()} timed out");
Logger.Info($"{server.ToString()} timed out");
session.Remote.Close();
Close();
}
Expand All @@ -830,7 +830,7 @@ private void ConnectCallback(IAsyncResult ar)

_destConnected = true;

Logger.Debug($"Socket connected to ss server: {_server.FriendlyName()}");
Logger.Debug($"Socket connected to ss server: {_server.ToString()}");

TimeSpan latency = DateTime.Now - _startConnectTime;

Expand Down
43 changes: 1 addition & 42 deletions shadowsocks-csharp/Controller/ShadowsocksController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -371,48 +371,7 @@ public void TouchUserRuleFile()

public string GetServerURLForCurrentServer()
{
Server server = GetCurrentServer();
return GetServerURL(server);
}

public static string GetServerURL(Server server)
{
string tag = string.Empty;
string url = string.Empty;

if (string.IsNullOrWhiteSpace(server.plugin))
{
// For backwards compatiblity, if no plugin, use old url format
string parts = $"{server.method}:{server.password}@{server.server}:{server.server_port}";
string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(parts));
url = base64;
}
else
{
// SIP002
string parts = $"{server.method}:{server.password}";
string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(parts));
string websafeBase64 = base64.Replace('+', '-').Replace('/', '_').TrimEnd('=');

string pluginPart = server.plugin;
if (!string.IsNullOrWhiteSpace(server.plugin_opts))
{
pluginPart += ";" + server.plugin_opts;
}

url = string.Format(
"{0}@{1}:{2}/?plugin={3}",
websafeBase64,
server.FormatHostName(server.server),
server.server_port,
HttpUtility.UrlEncode(pluginPart, Encoding.UTF8));
}

if (!server.remarks.IsNullOrEmpty())
{
tag = $"#{HttpUtility.UrlEncode(server.remarks, Encoding.UTF8)}";
}
return $"ss://{url}{tag}";
return GetCurrentServer().GetURL(_config.generateLegacyUrl);
}

public void UpdatePACFromGeosite()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ public void ChooseNewServer()
100 * 1000 * Math.Min(5 * 60, (now - status.lastFailure).TotalSeconds)
-2 * 5 * (Math.Min(2000, status.latency.TotalMilliseconds) / (1 + (now - status.lastTimeDetectLatency).TotalSeconds / 30 / 10) +
-0.5 * 200 * Math.Min(5, (status.lastRead - status.lastWrite).TotalSeconds));
logger.Debug(String.Format("server: {0} latency:{1} score: {2}", status.server.FriendlyName(), status.latency, status.score));
logger.Debug(String.Format("server: {0} latency:{1} score: {2}", status.server.ToString(), status.latency, status.score));
}
ServerStatus max = null;
foreach (var status in servers)
Expand All @@ -136,14 +136,14 @@ public void ChooseNewServer()
if (_currentServer == null || max.score - _currentServer.score > 200)
{
_currentServer = max;
logger.Info($"HA switching to server: {_currentServer.server.FriendlyName()}");
logger.Info($"HA switching to server: {_currentServer.server.ToString()}");
}
}
}

public void UpdateLatency(Model.Server server, TimeSpan latency)
{
logger.Debug($"latency: {server.FriendlyName()} {latency}");
logger.Debug($"latency: {server.ToString()} {latency}");

ServerStatus status;
if (_serverStatus.TryGetValue(server, out status))
Expand All @@ -155,7 +155,7 @@ public void UpdateLatency(Model.Server server, TimeSpan latency)

public void UpdateLastRead(Model.Server server)
{
logger.Debug($"last read: {server.FriendlyName()}");
logger.Debug($"last read: {server.ToString()}");

ServerStatus status;
if (_serverStatus.TryGetValue(server, out status))
Expand All @@ -166,7 +166,7 @@ public void UpdateLastRead(Model.Server server)

public void UpdateLastWrite(Model.Server server)
{
logger.Debug($"last write: {server.FriendlyName()}");
logger.Debug($"last write: {server.ToString()}");

ServerStatus status;
if (_serverStatus.TryGetValue(server, out status))
Expand All @@ -177,7 +177,7 @@ public void UpdateLastWrite(Model.Server server)

public void SetFailure(Model.Server server)
{
logger.Debug($"failure: {server.FriendlyName()}");
logger.Debug($"failure: {server.ToString()}");

ServerStatus status;
if (_serverStatus.TryGetValue(server, out status))
Expand Down
4 changes: 2 additions & 2 deletions shadowsocks-csharp/Controller/Strategy/StatisticsStrategy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ where _filteredStatistics.ContainsKey(id)
var bestResult = serversWithStatistics
.Aggregate((server1, server2) => server1.score > server2.score ? server1 : server2);

LogWhenEnabled($"Switch to server: {bestResult.server.FriendlyName()} by statistics: score {bestResult.score}");
LogWhenEnabled($"Switch to server: {bestResult.server.ToString()} by statistics: score {bestResult.score}");
_currentServer = bestResult.server;
}
catch (Exception e)
Expand Down Expand Up @@ -147,7 +147,7 @@ public void ReloadServers()

public void SetFailure(Server server)
{
logger.Debug($"failure: {server.FriendlyName()}");
logger.Debug($"failure: {server.ToString()}");
}

public void UpdateLastRead(Server server)
Expand Down
6 changes: 6 additions & 0 deletions shadowsocks-csharp/Model/Configuration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@ public class Configuration
public bool enabled;
public bool shareOverLan;
public bool isDefault;
// hidden
public bool isIPv6Enabled = false;
public int localPort;
public bool portableMode = true;
public bool showPluginOutput;
public string pacUrl;
// geosite config is hidden
public string geositeUrl;
public string geositeGroup = "geolocation-!cn";
public bool geositeBlacklistMode = true;
Expand All @@ -39,6 +41,10 @@ public class Configuration
public bool autoCheckUpdate;
public bool checkPreRelease;
public bool isVerboseLogging;

// hidden config
public bool generateLegacyUrl = false;

//public NLogConfig.LogLevel logLevel;
public LogViewerConfig logViewer;
public ProxyConfig proxy;
Expand Down
Loading