mirror of
https://github.com/snltty/linker.git
synced 2025-09-27 05:25:57 +08:00
186
This commit is contained in:
@@ -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;
|
||||||
|
@@ -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>
|
||||||
|
@@ -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
|
Reference in New Issue
Block a user