mirror of
https://github.com/snltty/linker.git
synced 2025-09-26 21:15:57 +08:00
186
This commit is contained in:
@@ -168,7 +168,7 @@ namespace linker.messenger.relay.messenger
|
||||
bool validated = string.IsNullOrWhiteSpace(error);
|
||||
return (await relayServerTransfer.GetNodes(validated, relayInfo.UserId), validated);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 收到中继请求
|
||||
@@ -179,7 +179,19 @@ namespace linker.messenger.relay.messenger
|
||||
public async Task RelayForward(IConnection connection)
|
||||
{
|
||||
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);
|
||||
}).ConfigureAwait(false);
|
||||
@@ -193,7 +205,7 @@ namespace linker.messenger.relay.messenger
|
||||
return serializer.Serialize(info);
|
||||
}).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)
|
||||
{
|
||||
@@ -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.FromMachineId = from.MachineId;
|
||||
|
@@ -6,6 +6,7 @@ using linker.messenger.relay.messenger;
|
||||
using linker.messenger.relay.server.caching;
|
||||
using linker.messenger.wlist;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
|
||||
namespace linker.messenger.relay.server
|
||||
@@ -154,9 +155,11 @@ namespace linker.messenger.relay.server
|
||||
/// </summary>
|
||||
/// <param name="nodeId"></param>
|
||||
/// <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>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
v1.8.6
|
||||
2025-07-01 10:28:15
|
||||
2025-07-01 10:39:01
|
||||
1. 一些累计更新
|
||||
2. 白名单
|
||||
3. 一些已知的BUG
|
Reference in New Issue
Block a user