This commit is contained in:
snltty
2025-07-01 10:39:01 +08:00
parent a5fb3716c3
commit 0e8ddbec2f
3 changed files with 22 additions and 7 deletions

View File

@@ -179,7 +179,19 @@ namespace linker.messenger.relay.messenger
public async Task RelayForward(IConnection connection) public async Task RelayForward(IConnection connection)
{ {
RelayInfo info = serializer.Deserialize<RelayInfo>(connection.ReceiveRequestWrap.Payload.Span); RelayInfo info = serializer.Deserialize<RelayInfo>(connection.ReceiveRequestWrap.Payload.Span);
await RelayForward(connection, info, (ushort)RelayMessengerIds.RelayForward, () => await RelayForward(connection, new RelayInfo170
{
FlowingId = info.FlowingId,
FromMachineId = info.FromMachineId,
FromMachineName = info.FromMachineName,
RemoteMachineId = info.RemoteMachineId,
RemoteMachineName = info.RemoteMachineName,
NodeId = info.NodeId,
UserId = string.Empty,
TransactionId = info.TransactionId,
TransportName = info.TransportName,
SecretKey = info.SecretKey,
}, (ushort)RelayMessengerIds.RelayForward, () =>
{ {
return serializer.Serialize(info); return serializer.Serialize(info);
}).ConfigureAwait(false); }).ConfigureAwait(false);
@@ -193,7 +205,7 @@ namespace linker.messenger.relay.messenger
return serializer.Serialize(info); return serializer.Serialize(info);
}).ConfigureAwait(false); }).ConfigureAwait(false);
} }
public async Task RelayForward(IConnection connection, RelayInfo info, ushort id, Func<byte[]> data) public async Task RelayForward(IConnection connection, RelayInfo170 info, ushort id, Func<byte[]> data)
{ {
if (signCaching.TryGet(connection.Id, info.RemoteMachineId, out SignCacheInfo from, out SignCacheInfo to) == false) if (signCaching.TryGet(connection.Id, info.RemoteMachineId, out SignCacheInfo from, out SignCacheInfo to) == false)
{ {
@@ -202,7 +214,7 @@ namespace linker.messenger.relay.messenger
} }
//需要验证 //需要验证
if (relayServerTransfer.NodeValidate(info.NodeId)) if (await relayServerTransfer.NodeValidate(info.NodeId, info.UserId))
{ {
info.RemoteMachineId = to.MachineId; info.RemoteMachineId = to.MachineId;
info.FromMachineId = from.MachineId; info.FromMachineId = from.MachineId;

View File

@@ -6,6 +6,7 @@ using linker.messenger.relay.messenger;
using linker.messenger.relay.server.caching; using linker.messenger.relay.server.caching;
using linker.messenger.wlist; using linker.messenger.wlist;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Linq;
using System.Net; using System.Net;
namespace linker.messenger.relay.server namespace linker.messenger.relay.server
@@ -154,9 +155,11 @@ namespace linker.messenger.relay.server
/// </summary> /// </summary>
/// <param name="nodeId"></param> /// <param name="nodeId"></param>
/// <returns></returns> /// <returns></returns>
public bool NodeValidate(string nodeId) public async Task<bool> NodeValidate(string nodeId,string userid)
{ {
return reports.TryGetValue(nodeId, out RelayServerNodeReportInfo170 relayNodeReportInfo) && relayNodeReportInfo.Public == false; var nodes = await whiteListServerStore.Get("Relay", userid);
return reports.TryGetValue(nodeId, out RelayServerNodeReportInfo170 node)
&& node.Public == false && nodes.Contains(node.Id) == false;
} }
/// <summary> /// <summary>

View File

@@ -1,5 +1,5 @@
v1.8.6 v1.8.6
2025-07-01 10:28:15 2025-07-01 10:39:01
1. 一些累计更新 1. 一些累计更新
2. 白名单 2. 白名单
3. 一些已知的BUG 3. 一些已知的BUG