From 8d14bf29d5fd9619215fd206bb5bbf89bbfc624a Mon Sep 17 00:00:00 2001 From: snltty <1069410172@qq.com> Date: Sun, 16 Mar 2025 19:33:27 +0800 Subject: [PATCH] 170 --- .github/workflows/dotnet.yml | 2 +- .../client/transport/RelayClientTransportSelfHost.cs | 10 ++++------ .../server/RelayServerResolver.cs | 4 ++-- src/linker/linker.csproj | 4 +++- version.txt | 6 ++++-- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 1a2271dd..69326bb5 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -35,7 +35,7 @@ jobs: release_name: v1.7.0.${{ steps.date.outputs.today }} draft: false prerelease: false - body: "1. 优化linux下路由跟踪问题,提高启动速度\r\n2. 优化linux下获取本机IP问题,提升虚拟网卡稳定性\r\n3. 增加ICS,让win7+、win server2008+支持NAT\r\n4. 增加中继cdkey,使用cdkey解锁公开中继节点的带宽、流量、连接数限制\r\n5. 优化管理页面连接接口的体验\r\n6. 优化一些UI体验,去除同步页面,将同步功能放至各个实际的位置\r\n7. 优化端口转发,让不同分组间可以使用相同端口\r\n8. 从命令行参数初始化配置\r\n9. 优化打洞,IPV6支持的更多了\r\n10. 优化定位,地图显示更准确了\r\n11. 测试发布,测试中,测试中,请勿更新,请勿更新,请勿更新" + body: "1. 优化linux下路由跟踪问题,提高启动速度\r\n2. 优化linux下获取本机IP问题,提升虚拟网卡稳定性\r\n3. 增加ICS,让win7+、win server2008+支持NAT\r\n4. 增加中继cdkey,使用cdkey解锁公开中继节点的带宽、流量、连接数限制\r\n5. 优化管理页面连接接口的体验\r\n6. 优化一些UI体验,去除同步页面,将同步功能放至各个实际的位置\r\n7. 优化端口转发,让不同分组间可以使用相同端口\r\n8. 从命令行参数初始化配置\r\n9. 优化打洞,IPV6支持的更多了\r\n10. 优化定位,地图显示更准确了\r\n12. UDP中继,请更新中继节点\r\n13. 优化windows下网卡的自动启用\r\n14. 测试发布,测试中,测试中,请勿更新,请勿更新,请勿更新" - name: publish projects run: ./publish.bat - name: upload-win-x86-oss diff --git a/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs b/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs index f7483327..9e64cc02 100644 --- a/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs +++ b/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs @@ -12,7 +12,6 @@ using System.Buffers; using linker.messenger.relay.server; using linker.messenger.signin; using System.Text; -using System; namespace linker.messenger.relay.client.transport { @@ -179,7 +178,7 @@ namespace linker.messenger.relay.client.transport if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG) LoggerHelper.Instance.Debug($"relay connected {ep}"); //是否允许连接 - int length = await socket.ReceiveAsync(buffer.AsMemory(0, 1)).ConfigureAwait(false); + int length = await socket.ReceiveAsync(buffer.AsMemory(0, 1)).AsTask().WaitAsync(TimeSpan.FromMilliseconds(5000)).ConfigureAwait(false); if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG) LoggerHelper.Instance.Debug($"relay connected {ep}->{buffer[0]}"); @@ -332,7 +331,6 @@ namespace linker.messenger.relay.client.transport } } - public class RelayClientTransportSelfHostUdp : IRelayClientTransport { public string Name => "LinkerUdp"; @@ -478,10 +476,10 @@ namespace linker.messenger.relay.client.transport NodeId = node.Id, }; await socket.SendToAsync(BuildPacket(buffer, relayMessage), ep).ConfigureAwait(false); - + //是否允许连接 IPEndPoint temp = new IPEndPoint(IPAddress.Any, 0); - SocketReceiveFromResult result = await socket.ReceiveFromAsync(buffer, temp).ConfigureAwait(false); + SocketReceiveFromResult result = await socket.ReceiveFromAsync(buffer, temp).WaitAsync(TimeSpan.FromMilliseconds(5000)).ConfigureAwait(false); if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG) LoggerHelper.Instance.Debug($"relay connected {ep}->{buffer[0]}"); if (buffer[0] == 0) @@ -514,7 +512,7 @@ namespace linker.messenger.relay.client.transport } return (null, null); } - private Memory BuildPacket(byte[] buffer,RelayMessageInfo relayMessage) + private Memory BuildPacket(byte[] buffer, RelayMessageInfo relayMessage) { int index = 0; buffer[0] = (byte)ResolverType.Relay; diff --git a/src/linker.messenger.relay/server/RelayServerResolver.cs b/src/linker.messenger.relay/server/RelayServerResolver.cs index 883d256d..792f5314 100644 --- a/src/linker.messenger.relay/server/RelayServerResolver.cs +++ b/src/linker.messenger.relay/server/RelayServerResolver.cs @@ -19,7 +19,7 @@ namespace linker.messenger.relay.server private readonly RelayServerNodeTransfer relayServerNodeTransfer; private readonly ISerializer serializer; - private string relayFlag = $"{Helper.GlobalString}.relay.flag"; + private byte[] relayFlag = Encoding.UTF8.GetBytes($"{Helper.GlobalString}.relay.flag"); public RelayServerResolver(RelayServerNodeTransfer relayServerNodeTransfer, ISerializer serializer) { @@ -67,7 +67,7 @@ namespace linker.messenger.relay.server } byte flagLength = memory.Span[0]; - if(Encoding.UTF8.GetString(memory.Slice(1, flagLength).Span) != relayFlag) + if (memory.Length < flagLength + 1 || memory.Slice(1, flagLength).Span.SequenceEqual(relayFlag) == false) { await socket.SendToAsync(new byte[] { 1 }, ep).ConfigureAwait(false); return; diff --git a/src/linker/linker.csproj b/src/linker/linker.csproj index 736fbcf9..7a5b1e08 100644 --- a/src/linker/linker.csproj +++ b/src/linker/linker.csproj @@ -30,7 +30,9 @@ 8. 从命令行参数初始化配置 9. 优化打洞,IPV6支持的更多了 10. 优化定位,地图显示更准确了 -11. 测试发布,测试中,测试中,请勿更新,请勿更新,请勿更新 +12. UDP中继,请更新中继节点 +13. 优化windows下网卡的自动启用 +14. 测试发布,测试中,测试中,请勿更新,请勿更新,请勿更新 snltty https://github.com/snltty/linker https://github.com/snltty/linker diff --git a/version.txt b/version.txt index edc0ae2b..8591a8cc 100644 --- a/version.txt +++ b/version.txt @@ -1,5 +1,5 @@ v1.7.0 -2025-03-16 18:52:46 +2025-03-16 19:33:26 1. 优化linux下路由跟踪问题,提高启动速度 2. 优化linux下获取本机IP问题,提升虚拟网卡稳定性 3. 增加ICS,让win7+、win server2008+支持NAT @@ -10,4 +10,6 @@ v1.7.0 8. 从命令行参数初始化配置 9. 优化打洞,IPV6支持的更多了 10. 优化定位,地图显示更准确了 -11. 测试发布,测试中,测试中,请勿更新,请勿更新,请勿更新 \ No newline at end of file +12. UDP中继,请更新中继节点 +13. 优化windows下网卡的自动启用 +14. 测试发布,测试中,测试中,请勿更新,请勿更新,请勿更新 \ No newline at end of file