|
|
@@ -147,6 +147,7 @@ namespace ET.Server
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ Fiber fiber = self.Fiber();
|
|
|
// accept
|
|
|
byte flag = self.Cache[0];
|
|
|
switch (flag)
|
|
|
@@ -171,7 +172,7 @@ namespace ET.Server
|
|
|
self.ConnectIdNodes.TryGetValue(connectId, out routerNode);
|
|
|
if (routerNode == null)
|
|
|
{
|
|
|
- Log.Info($"router create reconnect: {self.IPEndPoint} {realAddress} {connectId} {outerConn} {innerConn}");
|
|
|
+ fiber.Info($"router create reconnect: {self.IPEndPoint} {realAddress} {connectId} {outerConn} {innerConn}");
|
|
|
routerNode = self.New(realAddress, connectId, outerConn, innerConn, self.CloneAddress());
|
|
|
// self.OuterNodes 这里不能add,因为还没验证完成,要在RouterAck中加入
|
|
|
}
|
|
|
@@ -179,7 +180,7 @@ namespace ET.Server
|
|
|
|
|
|
if (routerNode.ConnectId != connectId)
|
|
|
{
|
|
|
- Log.Warning($"kcp router router reconnect connectId diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
+ fiber.Warning($"kcp router router reconnect connectId diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -187,27 +188,27 @@ namespace ET.Server
|
|
|
// 这个路由连接不上,客户端会换个软路由,所以没关系
|
|
|
if (routerNode.InnerConn != innerConn)
|
|
|
{
|
|
|
- Log.Warning($"kcp router router reconnect inner conn diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
+ fiber.Warning($"kcp router router reconnect inner conn diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (routerNode.OuterConn != outerConn)
|
|
|
{
|
|
|
- Log.Warning($"kcp router router reconnect outer conn diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
+ fiber.Warning($"kcp router router reconnect outer conn diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 校验ip,连接过程中ip不能变化
|
|
|
if (!Equals(routerNode.SyncIpEndPoint, self.IPEndPoint))
|
|
|
{
|
|
|
- Log.Warning($"kcp router syn ip is diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
+ fiber.Warning($"kcp router syn ip is diff1: {routerNode.SyncIpEndPoint} {(IPEndPoint) self.IPEndPoint}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 校验内网地址
|
|
|
if (routerNode.InnerAddress != realAddress)
|
|
|
{
|
|
|
- Log.Warning($"router sync error2: {routerNode.OuterConn} {routerNode.InnerAddress} {outerConn} {realAddress}");
|
|
|
+ fiber.Warning($"router sync error2: {routerNode.OuterConn} {routerNode.InnerAddress} {outerConn} {realAddress}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -250,7 +251,7 @@ namespace ET.Server
|
|
|
{
|
|
|
outerConn = NetServices.Instance.CreateConnectChannelId();
|
|
|
routerNode = self.New(realAddress, connectId, outerConn, innerConn, self.CloneAddress());
|
|
|
- Log.Info($"router create: {realAddress} {connectId} {outerConn} {innerConn} {routerNode.SyncIpEndPoint}");
|
|
|
+ fiber.Info($"router create: {realAddress} {connectId} {outerConn} {innerConn} {routerNode.SyncIpEndPoint}");
|
|
|
self.OuterNodes.Add(routerNode.OuterConn, routerNode);
|
|
|
}
|
|
|
|
|
|
@@ -263,14 +264,14 @@ namespace ET.Server
|
|
|
// 校验ip,连接过程中ip不能变化
|
|
|
if (!Equals(routerNode.SyncIpEndPoint, self.IPEndPoint))
|
|
|
{
|
|
|
- Log.Warning($"kcp router syn ip is diff1: {routerNode.SyncIpEndPoint} {self.IPEndPoint}");
|
|
|
+ fiber.Warning($"kcp router syn ip is diff1: {routerNode.SyncIpEndPoint} {self.IPEndPoint}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 校验内网地址
|
|
|
if (routerNode.InnerAddress != realAddress)
|
|
|
{
|
|
|
- Log.Warning($"router sync error2: {routerNode.OuterConn} {routerNode.InnerAddress} {outerConn} {realAddress}");
|
|
|
+ fiber.Warning($"router sync error2: {routerNode.OuterConn} {routerNode.InnerAddress} {outerConn} {realAddress}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -299,7 +300,7 @@ namespace ET.Server
|
|
|
|
|
|
if (!self.OuterNodes.TryGetValue(outerConn, out RouterNode kcpRouter))
|
|
|
{
|
|
|
- Log.Warning($"kcp router syn not found outer nodes: {outerConn} {innerConn}");
|
|
|
+ fiber.Warning($"kcp router syn not found outer nodes: {outerConn} {innerConn}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -313,7 +314,7 @@ namespace ET.Server
|
|
|
IPEndPoint ipEndPoint = (IPEndPoint) self.IPEndPoint;
|
|
|
if (!Equals(kcpRouter.SyncIpEndPoint.Address, ipEndPoint.Address))
|
|
|
{
|
|
|
- Log.Warning($"kcp router syn ip is diff3: {kcpRouter.SyncIpEndPoint.Address} {ipEndPoint.Address}");
|
|
|
+ fiber.Warning($"kcp router syn ip is diff3: {kcpRouter.SyncIpEndPoint.Address} {ipEndPoint.Address}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -328,7 +329,7 @@ namespace ET.Server
|
|
|
self.Cache.WriteTo(5, innerConn);
|
|
|
byte[] addressBytes = ipEndPoint.ToString().ToByteArray();
|
|
|
Array.Copy(addressBytes, 0, self.Cache, 9, addressBytes.Length);
|
|
|
- Log.Info($"kcp router syn: {outerConn} {innerConn} {kcpRouter.InnerIpEndPoint} {kcpRouter.OuterIpEndPoint}");
|
|
|
+ fiber.Info($"kcp router syn: {outerConn} {innerConn} {kcpRouter.InnerIpEndPoint} {kcpRouter.OuterIpEndPoint}");
|
|
|
self.InnerSocket.SendTo(self.Cache, 0, 9 + addressBytes.Length, SocketFlags.None, kcpRouter.InnerIpEndPoint);
|
|
|
|
|
|
if (!kcpRouter.CheckOuterCount(timeNow))
|
|
|
@@ -351,19 +352,19 @@ namespace ET.Server
|
|
|
|
|
|
if (!self.OuterNodes.TryGetValue(outerConn, out RouterNode kcpRouter))
|
|
|
{
|
|
|
- Log.Warning($"kcp router outer fin not found outer nodes: {outerConn} {innerConn}");
|
|
|
+ fiber.Warning($"kcp router outer fin not found outer nodes: {outerConn} {innerConn}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 比对innerConn
|
|
|
if (kcpRouter.InnerConn != innerConn)
|
|
|
{
|
|
|
- Log.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouter.Status}");
|
|
|
+ fiber.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouter.Status}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
kcpRouter.LastRecvOuterTime = timeNow;
|
|
|
- Log.Info($"kcp router outer fin: {outerConn} {innerConn} {kcpRouter.InnerIpEndPoint}");
|
|
|
+ fiber.Info($"kcp router outer fin: {outerConn} {innerConn} {kcpRouter.InnerIpEndPoint}");
|
|
|
self.InnerSocket.SendTo(self.Cache, 0, messageLength, SocketFlags.None, kcpRouter.InnerIpEndPoint);
|
|
|
|
|
|
if (!kcpRouter.CheckOuterCount(timeNow))
|
|
|
@@ -387,20 +388,20 @@ namespace ET.Server
|
|
|
|
|
|
if (!self.OuterNodes.TryGetValue(outerConn, out RouterNode kcpRouter))
|
|
|
{
|
|
|
- Log.Warning($"kcp router msg not found outer nodes: {outerConn} {innerConn}");
|
|
|
+ fiber.Warning($"kcp router msg not found outer nodes: {outerConn} {innerConn}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (kcpRouter.Status != RouterStatus.Msg)
|
|
|
{
|
|
|
- Log.Warning($"router node status error: {innerConn} {outerConn} {kcpRouter.Status}");
|
|
|
+ fiber.Warning($"router node status error: {innerConn} {outerConn} {kcpRouter.Status}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 比对innerConn
|
|
|
if (kcpRouter.InnerConn != innerConn)
|
|
|
{
|
|
|
- Log.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouter.Status}");
|
|
|
+ fiber.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouter.Status}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -434,7 +435,7 @@ namespace ET.Server
|
|
|
|
|
|
// accept
|
|
|
byte flag = self.Cache[0];
|
|
|
-
|
|
|
+ Fiber fiber = self.Fiber();
|
|
|
switch (flag)
|
|
|
{
|
|
|
case KcpProtocalType.RouterReconnectACK:
|
|
|
@@ -444,14 +445,14 @@ namespace ET.Server
|
|
|
uint connectId = BitConverter.ToUInt32(self.Cache, 9);
|
|
|
if (!self.ConnectIdNodes.TryGetValue(connectId, out RouterNode kcpRouterNode))
|
|
|
{
|
|
|
- Log.Warning($"router node error: {innerConn} {connectId}");
|
|
|
+ fiber.Warning($"router node error: {innerConn} {connectId}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 必须校验innerConn,防止伪造
|
|
|
if (innerConn != kcpRouterNode.InnerConn)
|
|
|
{
|
|
|
- Log.Warning(
|
|
|
+ fiber.Warning(
|
|
|
$"router node innerConn error: {innerConn} {kcpRouterNode.InnerConn} {outerConn} {kcpRouterNode.OuterConn} {kcpRouterNode.Status}");
|
|
|
break;
|
|
|
}
|
|
|
@@ -459,7 +460,7 @@ namespace ET.Server
|
|
|
// 必须校验outerConn,防止伪造
|
|
|
if (outerConn != kcpRouterNode.OuterConn)
|
|
|
{
|
|
|
- Log.Warning(
|
|
|
+ fiber.Warning(
|
|
|
$"router node outerConn error: {innerConn} {kcpRouterNode.InnerConn} {outerConn} {kcpRouterNode.OuterConn} {kcpRouterNode.Status}");
|
|
|
break;
|
|
|
}
|
|
|
@@ -479,7 +480,7 @@ namespace ET.Server
|
|
|
self.Cache.WriteTo(0, KcpProtocalType.RouterReconnectACK);
|
|
|
self.Cache.WriteTo(1, kcpRouterNode.InnerConn);
|
|
|
self.Cache.WriteTo(5, kcpRouterNode.OuterConn);
|
|
|
- Log.Info($"kcp router RouterAck: {outerConn} {innerConn} {kcpRouterNode.SyncIpEndPoint}");
|
|
|
+ fiber.Info($"kcp router RouterAck: {outerConn} {innerConn} {kcpRouterNode.SyncIpEndPoint}");
|
|
|
self.OuterSocket.SendTo(self.Cache, 0, 9, SocketFlags.None, kcpRouterNode.SyncIpEndPoint);
|
|
|
break;
|
|
|
}
|
|
|
@@ -491,7 +492,7 @@ namespace ET.Server
|
|
|
|
|
|
if (!self.OuterNodes.TryGetValue(outerConn, out RouterNode kcpRouterNode))
|
|
|
{
|
|
|
- Log.Warning($"kcp router ack not found outer nodes: {outerConn} {innerConn}");
|
|
|
+ fiber.Warning($"kcp router ack not found outer nodes: {outerConn} {innerConn}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -501,7 +502,7 @@ namespace ET.Server
|
|
|
|
|
|
kcpRouterNode.LastRecvInnerTime = timeNow;
|
|
|
// 转发出去
|
|
|
- Log.Info($"kcp router ack: {outerConn} {innerConn} {kcpRouterNode.OuterIpEndPoint}");
|
|
|
+ fiber.Info($"kcp router ack: {outerConn} {innerConn} {kcpRouterNode.OuterIpEndPoint}");
|
|
|
self.OuterSocket.SendTo(self.Cache, 0, messageLength, SocketFlags.None, kcpRouterNode.OuterIpEndPoint);
|
|
|
break;
|
|
|
}
|
|
|
@@ -518,14 +519,14 @@ namespace ET.Server
|
|
|
|
|
|
if (!self.OuterNodes.TryGetValue(outerConn, out RouterNode kcpRouterNode))
|
|
|
{
|
|
|
- Log.Warning($"kcp router inner fin not found outer nodes: {outerConn} {innerConn}");
|
|
|
+ fiber.Warning($"kcp router inner fin not found outer nodes: {outerConn} {innerConn}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 比对innerConn
|
|
|
if (kcpRouterNode.InnerConn != innerConn)
|
|
|
{
|
|
|
- Log.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouterNode.Status}");
|
|
|
+ fiber.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouterNode.Status}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -536,7 +537,7 @@ namespace ET.Server
|
|
|
}
|
|
|
|
|
|
kcpRouterNode.LastRecvInnerTime = timeNow;
|
|
|
- Log.Info($"kcp router inner fin: {outerConn} {innerConn} {kcpRouterNode.OuterIpEndPoint}");
|
|
|
+ fiber.Info($"kcp router inner fin: {outerConn} {innerConn} {kcpRouterNode.OuterIpEndPoint}");
|
|
|
self.OuterSocket.SendTo(self.Cache, 0, messageLength, SocketFlags.None, kcpRouterNode.OuterIpEndPoint);
|
|
|
|
|
|
break;
|
|
|
@@ -555,14 +556,14 @@ namespace ET.Server
|
|
|
|
|
|
if (!self.OuterNodes.TryGetValue(outerConn, out RouterNode kcpRouterNode))
|
|
|
{
|
|
|
- Log.Warning($"kcp router inner msg not found outer nodes: {outerConn} {innerConn}");
|
|
|
+ fiber.Warning($"kcp router inner msg not found outer nodes: {outerConn} {innerConn}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
// 比对innerConn
|
|
|
if (kcpRouterNode.InnerConn != innerConn)
|
|
|
{
|
|
|
- Log.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouterNode.Status}");
|
|
|
+ fiber.Warning($"router node innerConn error: {innerConn} {outerConn} {kcpRouterNode.Status}");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -602,7 +603,7 @@ namespace ET.Server
|
|
|
|
|
|
routerNode.Status = RouterStatus.Sync;
|
|
|
|
|
|
- Log.Info($"router new: outerConn: {outerConn} innerConn: {innerConn} {syncEndPoint}");
|
|
|
+ self.Fiber().Info($"router new: outerConn: {outerConn} innerConn: {innerConn} {syncEndPoint}");
|
|
|
|
|
|
return routerNode;
|
|
|
}
|
|
|
@@ -615,7 +616,7 @@ namespace ET.Server
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- Log.Info($"router node remove: {routerNode.OuterConn} {routerNode.InnerConn} {error}");
|
|
|
+ self.Fiber().Info($"router node remove: {routerNode.OuterConn} {routerNode.InnerConn} {error}");
|
|
|
self.Remove(id);
|
|
|
}
|
|
|
|
|
|
@@ -638,7 +639,7 @@ namespace ET.Server
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- Log.Info($"router remove: {routerNode.Id} outerConn: {routerNode.OuterConn} innerConn: {routerNode.InnerConn}");
|
|
|
+ self.Fiber().Info($"router remove: {routerNode.Id} outerConn: {routerNode.OuterConn} innerConn: {routerNode.InnerConn}");
|
|
|
|
|
|
routerNode.Dispose();
|
|
|
}
|