public void Compile() { foreach (IPAddress ip in this.Addresses) { foreach (string protocol in this.Protocols) { foreach (string port in this.Ports) { Connector scratch = new Connector(); scratch.AppProtocol = "native1"; scratch.Port = Convert.ToInt32(port); scratch.Protocol = protocol; scratch.Host = ip.ToString(); scratch.HostType = "ADDRESS"; switch (ip.AddressFamily) { case System.Net.Sockets.AddressFamily.InterNetwork: scratch.TransportProtocol = "IPV4"; break; case System.Net.Sockets.AddressFamily.InterNetworkV6: scratch.TransportProtocol = "IPV6"; break; } scratch.Type = Connector.ConnectorTypes.Listen; this.Connectors.Add(scratch.Key(), scratch); } } } foreach (KeyValuePair <string, Connector> conn in this.Connectors) { SimpleMesh.Service.Runner.DebugMessage("Debug.Info.Listener", conn.Value.ToString()); } }
private int ReadFile(string filename) { string[] configfile; try { configfile = System.IO.File.ReadAllLines(filename); } catch { Runner.DebugMessage("Debug.Error.Trackfile", "File not found: " + filename.ToString()); return(1); } Boolean firstline = true; foreach (string line in configfile) { string LineType; if (line.Length != 0) { LineType = line.Substring(0, 1); } else { LineType = "EMPTY"; } if (firstline == true) { firstline = false; string[] chunks = line.Split('!'); if (LineType == "I") { this._versiontype = chunks[1]; this._createddate = chunks[2]; this._lastmodifieddate = chunks[3]; this._name = chunks[4]; this._nethash = chunks[5]; } } else { switch (this._versiontype) { case "1.1": string[] chunks = line.Split('!'); string UUID; string keystring; Node scratch; switch (chunks[0]) { case "#": break; case "EMPTY": break; case "N": UUID = chunks[1]; if (UUID != Node.UUID.ToString()) { scratch = this.NodeInit(UUID); scratch.Name = chunks[2]; } break; case "C": UUID = chunks[1]; if (UUID != Node.UUID.ToString()) { scratch = this.NodeInit(UUID); string connectorstring = line.Replace("C!" + chunks[1] + "!", ""); Connector scratchconnector = new Connector(connectorstring); scratchconnector.Type = Connector.ConnectorTypes.Connect; scratch.ConnectorList.Add(scratchconnector.Key(), scratchconnector); } break; case "A": UUID = chunks[1]; if (UUID != Node.UUID.ToString()) { scratch = this.NodeInit(UUID); keystring = line.Replace("A!" + chunks[1] + "!" + chunks[2] + "!" + chunks[3] + "!", ""); Auth auth = new Auth(keystring, BoolUnpack(chunks[3]), BoolUnpack(chunks[4])); scratch.AuthKeyList.Add(auth.UUID, auth); } break; case "E": UUID = chunks[1]; keystring = line.Replace("E!" + chunks[1] + "!" + chunks[2] + "!" + chunks[3] + "!", ""); this.Enrollment.Add(UUID, new Auth(keystring, BoolUnpack(chunks[2]), BoolUnpack(chunks[3]))); break; } break; } } } string message = "Enrollment Keys"; foreach (KeyValuePair <string, Auth> enrolled in this.Enrollment) { message += "\n\t" + enrolled.Value.Key.ToString(); } SimpleMesh.Service.Runner.DebugMessage("Debug.Info.Trackfile", message); foreach (KeyValuePair <string, Node> line in this.NodeList) { Node scratch = line.Value; message = "Name=\t" + scratch.Name; message += "\nUUID=\t" + scratch.UUID; message += "\nAuthentication:"; foreach (KeyValuePair <UUID, Auth> auth in scratch.AuthKeyList) { message += "\n\t" + auth.Value.Key.ToString(); } message += "\nConnectors:"; foreach (KeyValuePair <string, Connector> connector in scratch.ConnectorList) { message += "\n\t" + connector.Value.ToString(); } SimpleMesh.Service.Runner.DebugMessage("Debug.Info.Trackfile", message); } this._new = false; return(0); }
private int ReadFile(string filename) { string[] configfile; try { configfile = System.IO.File.ReadAllLines(filename); } catch { Runner.DebugMessage("Debug.Error.Trackfile", "File not found: " + filename.ToString()); return 1; } Boolean firstline = true; foreach (string line in configfile) { string LineType; if (line.Length != 0) { LineType = line.Substring(0, 1); } else { LineType = "EMPTY"; } if (firstline == true) { firstline = false; string[] chunks = line.Split('!'); if (LineType == "I") { this._versiontype = chunks[1]; this._createddate = chunks[2]; this._lastmodifieddate = chunks[3]; this._name = chunks[4]; this._nethash = chunks[5]; } } else { switch (this._versiontype) { case "1.1": string[] chunks = line.Split('!'); string UUID; string keystring; Node scratch; switch (chunks[0]) { case "#": break; case "EMPTY": break; case "N": UUID = chunks[1]; if (UUID != Node.UUID.ToString()) { scratch = this.NodeInit(UUID); scratch.Name = chunks[2]; } break; case "C": UUID = chunks[1]; if (UUID != Node.UUID.ToString()) { scratch = this.NodeInit(UUID); string connectorstring = line.Replace("C!" + chunks[1] + "!", ""); Connector scratchconnector = new Connector(connectorstring); scratchconnector.Type = Connector.ConnectorTypes.Connect; scratch.ConnectorList.Add(scratchconnector.Key(), scratchconnector); } break; case "A": UUID = chunks[1]; if (UUID != Node.UUID.ToString()) { scratch = this.NodeInit(UUID); keystring = line.Replace("A!" + chunks[1] + "!" + chunks[2] + "!" + chunks[3] + "!", ""); Auth auth = new Auth(keystring, BoolUnpack(chunks[3]), BoolUnpack(chunks[4])); scratch.AuthKeyList.Add(auth.UUID, auth); } break; case "E": UUID = chunks[1]; keystring = line.Replace("E!" + chunks[1] + "!" + chunks[2] + "!" + chunks[3] + "!", ""); this.Enrollment.Add(UUID, new Auth(keystring, BoolUnpack(chunks[2]), BoolUnpack(chunks[3]))); break; } break; } } } string message = "Enrollment Keys"; foreach (KeyValuePair<string, Auth> enrolled in this.Enrollment) { message += "\n\t" + enrolled.Value.Key.ToString(); } SimpleMesh.Service.Runner.DebugMessage("Debug.Info.Trackfile", message); foreach (KeyValuePair<string, Node> line in this.NodeList) { Node scratch = line.Value; message = "Name=\t" + scratch.Name; message += "\nUUID=\t" + scratch.UUID; message += "\nAuthentication:"; foreach (KeyValuePair<UUID, Auth> auth in scratch.AuthKeyList) { message += "\n\t" + auth.Value.Key.ToString(); } message += "\nConnectors:"; foreach (KeyValuePair<string, Connector> connector in scratch.ConnectorList) { message += "\n\t" + connector.Value.ToString(); } SimpleMesh.Service.Runner.DebugMessage("Debug.Info.Trackfile", message); } this._new = false; return 0; }