mirror of
https://github.com/snltty/linker.git
synced 2025-10-16 22:21:16 +08:00
优化更新
This commit is contained in:
@@ -181,8 +181,9 @@ namespace linker.plugins.relay
|
||||
SecretKey = item.SecretKey,
|
||||
Server = server,
|
||||
TransactionId = transactionId,
|
||||
TransportName = $"{transport.Name}|{item.Name}",
|
||||
SSL = item.SSL
|
||||
TransportName = transport.Name,
|
||||
SSL = item.SSL,
|
||||
ServerName = item.Name
|
||||
};
|
||||
|
||||
LoggerHelper.Instance.Info($"relay to {relayInfo.RemoteMachineId}->{relayInfo.RemoteMachineName} {relayInfo.ToJson()}");
|
||||
@@ -224,7 +225,9 @@ namespace linker.plugins.relay
|
||||
|
||||
try
|
||||
{
|
||||
await TestServer(relayInfo);
|
||||
RelayServerInfo server = running.Data.Relay.Servers.FirstOrDefault(c => c.Name == relayInfo.ServerName) ?? running.Data.Relay.Servers.FirstOrDefault();
|
||||
relayInfo.Server = NetworkHelper.GetEndPoint(server.Host, 3478);
|
||||
|
||||
ITransport _transports = transports.FirstOrDefault(c => c.Name == relayInfo.TransportName);
|
||||
if (_transports != null)
|
||||
{
|
||||
@@ -257,28 +260,6 @@ namespace linker.plugins.relay
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private async Task TestServer(RelayInfo relayInfo)
|
||||
{
|
||||
string[] arr = relayInfo.TransportName.Split('|');
|
||||
relayInfo.TransportName = arr[0];
|
||||
|
||||
try
|
||||
{
|
||||
Socket socket = new Socket(relayInfo.Server.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
|
||||
await socket.ConnectAsync(relayInfo.Server).WaitAsync(TimeSpan.FromMilliseconds(500)).ConfigureAwait(false);
|
||||
socket.SafeClose();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
RelayServerInfo server = null;
|
||||
if (arr.Length > 1)
|
||||
{
|
||||
server = running.Data.Relay.Servers.FirstOrDefault(c => c.Name == arr[1]);
|
||||
}
|
||||
server ??= running.Data.Relay.Servers.FirstOrDefault();
|
||||
relayInfo.Server = NetworkHelper.GetEndPoint(server.Host, 3478);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 回调
|
||||
|
Reference in New Issue
Block a user