# HG changeset patch # User KaitoMaeshiro # Date 1643533329 -32400 # Node ID 976d43003487536889b6d10e825c8a2c4b8f4009 # Parent 806965e042995ce91d56252479101df120d65524 fix TopologyManager diff -r 806965e04299 -r 976d43003487 Test/Topology/TreeTestTopology/ChildCodeGear.cs --- a/Test/Topology/TreeTestTopology/ChildCodeGear.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/Test/Topology/TreeTestTopology/ChildCodeGear.cs Sun Jan 30 18:02:09 2022 +0900 @@ -13,7 +13,7 @@ public override void Run(CodeGearManager cgm) { - Console.WriteLine("a"); + Console.WriteLine(topoDG.getNodeName() + " : " + " child accept"); List _CLIST = topoDG.getConnectionList(); if(_CLIST.Contains("parent")) { GetDgm("parent").Put("childNodeName", topoDG.getNodeName()); diff -r 806965e04299 -r 976d43003487 Test/Topology/TreeTestTopology/StartTreeTestTopology.cs --- a/Test/Topology/TreeTestTopology/StartTreeTestTopology.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/Test/Topology/TreeTestTopology/StartTreeTestTopology.cs Sun Jan 30 18:02:09 2022 +0900 @@ -1,5 +1,6 @@ using System; using System.Net; +using System.Threading; using Christie_net.codegear; using Christie_net.topology.manager; using Christie_net.topology.node; @@ -39,7 +40,10 @@ "--localPort", (topologyNodePort + i).ToString()}; TopologyNodeConfig cs = new TopologyNodeConfig(nodeArg); new StartTopologyNode(cs, new ChildCodeGear()).Put("maxNodeNum", topologyManagerConfig.hasChild); + } + Thread.Sleep(10000); + Console.WriteLine("TopologyManager done"); } } } \ No newline at end of file diff -r 806965e04299 -r 976d43003487 datagear/LocalDataGearManager.cs --- a/datagear/LocalDataGearManager.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/datagear/LocalDataGearManager.cs Sun Jan 30 18:02:09 2022 +0900 @@ -58,6 +58,7 @@ public override void ResolveWaitCommand(string key, DataGear dg) { } public override void Finish() { + Console.WriteLine("ldgm fin"); Environment.Exit(0); } diff -r 806965e04299 -r 976d43003487 datagear/RemoteDataGearManager.cs --- a/datagear/RemoteDataGearManager.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/datagear/RemoteDataGearManager.cs Sun Jan 30 18:02:09 2022 +0900 @@ -25,14 +25,24 @@ do { try { IPHostEntry host = Dns.GetHostEntry(address); - IPAddress ipAddress = host.AddressList[0]; - IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, port); - Socket socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); - socket.Connect(remoteEndPoint); - socket.NoDelay = true; + Socket socket ; + foreach (IPAddress ipAddress in host.AddressList) { + IPEndPoint remoteEndPoint = new IPEndPoint(ipAddress, port); + Console.WriteLine(ipAddress + " " +address + " " + port); + try + { + socket = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); - connection = new Connection(socket, cgm); - connection.name = dgmname; + socket.Connect(remoteEndPoint); + socket.NoDelay = true; + + connection = new Connection(socket, cgm); + connection.name = dgmname; + break; + }catch{ + + } + } lock (syncObj) { connect = true; diff -r 806965e04299 -r 976d43003487 topology/HostMessage.cs --- a/topology/HostMessage.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/topology/HostMessage.cs Sun Jan 30 18:02:09 2022 +0900 @@ -1,17 +1,24 @@ using System; using System.Net; using Christie_net.datagear.dg; +using MessagePack; namespace Christie_net.topology{ + [MessagePackObject] public class HostMessage /*: Cloneable*/ { + [Key("hostName")] private String hostName = ""; + [Key("port")] private int port ; + [Key("nodeName")] private String nodeName; // this is nodeName which have these IP and port. + [Key("connectionName")] private String connectionName; + [Key("remoteNodeName")] private String remoteNodeName; - + [Key("cookie")] private String cookie; // MD5 - + [Key("alive")] private Boolean alive; public HostMessage() {} diff -r 806965e04299 -r 976d43003487 topology/manager/CreateHash.cs --- a/topology/manager/CreateHash.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/topology/manager/CreateHash.cs Sun Jan 30 18:02:09 2022 +0900 @@ -55,6 +55,8 @@ } */ + + GetLocalDgm().Put("MD5", "MD5"); cgm.Setup(new CreateHash()); } diff -r 806965e04299 -r 976d43003487 topology/manager/CreateTreeTopology.cs --- a/topology/manager/CreateTreeTopology.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/topology/manager/CreateTreeTopology.cs Sun Jan 30 18:02:09 2022 +0900 @@ -10,7 +10,7 @@ [Take] public HostMessage newHost; [Take] public int hostCount; [Take] public Dictionary nameTable; - [Take] public String MD5; + //[Take] public String MD5; [Take] public Dictionary absCookieTable; [Take] public ParentManager parentManager; @@ -26,11 +26,13 @@ cgm.CreateRemoteDGM(nodeName, newHostName, newHostPort); + + Console.WriteLine("put topoDG on createTreeTopology"); TopologyDataGear topoDG = new TopologyDataGear(); topoDG.setNodeName(nodeName); GetDgm(nodeName).Put("topoDG", topoDG); - GetDgm(nodeName).Put("cookie", MD5); + //GetDgm(nodeName).Put("cookie", MD5); //absCookieTable.put(MD5, nodeName); //GetLocalDgm().Put("absCookieTable", absCookieTable); diff -r 806965e04299 -r 976d43003487 topology/manager/StartTopologyManager.cs --- a/topology/manager/StartTopologyManager.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/topology/manager/StartTopologyManager.cs Sun Jan 30 18:02:09 2022 +0900 @@ -1,3 +1,4 @@ +using System; using Christie_net.codegear; using Christie_net.topology.node; diff -r 806965e04299 -r 976d43003487 topology/manager/TopologyManager.cs --- a/topology/manager/TopologyManager.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/topology/manager/TopologyManager.cs Sun Jan 30 18:02:09 2022 +0900 @@ -39,7 +39,6 @@ GetLocalDgm().Put("topology", new Dictionary>()); GetLocalDgm().Put("createdList", new LinkedList()); - } } } diff -r 806965e04299 -r 976d43003487 topology/node/TopologyNode.cs --- a/topology/node/TopologyNode.cs Sun Jan 30 16:06:33 2022 +0900 +++ b/topology/node/TopologyNode.cs Sun Jan 30 18:02:09 2022 +0900 @@ -13,7 +13,9 @@ public override void Run(CodeGearManager cgm) { - cgm.CreateRemoteDGM(topologyNodeConfig.getManagerKey(), topologyNodeConfig.getManagerHostName(), topologyNodeConfig.getManagerPort()); + cgm.CreateRemoteDGM(topologyNodeConfig.getManagerKey(), + topologyNodeConfig.getManagerHostName(), + topologyNodeConfig.getManagerPort()); HostMessage hostMessage = new HostMessage(); hostMessage.setLocalHostAndPort(cgm.localPort);