public bool Load(XmlNode entryNode) { foreach (XmlNode node in entryNode.ChildNodes) { if (node.Name == "ID") { ProgramID id = new ProgramID(); if (id.Load(node)) { ID = id; } } else if (node.Name == "Description") { Description = node.InnerText; } else if (node.Name == "FwRules") { foreach (XmlNode childNode in node.ChildNodes) { FirewallRuleEx rule = new FirewallRuleEx(); rule.ProgID = ID; if (rule.Load(childNode) && !Rules.ContainsKey(rule.guid)) { Rules.Add(rule.guid, rule); } else { App.LogError("Failed to load Firewall RuleEx {0} in {1}", rule.Name != null ? rule.Name : "[un named]", this.Description); } } } else if (node.Name == "DnsLog") { foreach (XmlNode childNode in node.ChildNodes) { DnsEntry Entry = new DnsEntry(ID); if (Entry.Load(childNode) && !DnsLog.ContainsKey(Entry.HostName)) { DnsLog.Add(Entry.HostName, Entry); } else { App.LogError("Failed to load DnsLog Entry in {0}", this.Description); } } } else { AppLog.Debug("Unknown Program Value, '{0}':{1}", node.Name, node.InnerText); } } return(ID != null); }
public bool Load(XmlNode entryNode) { foreach (XmlNode node in entryNode.ChildNodes) { if (node.Name == "ID") { ProgID = new ProgramID(); ProgID.Load(node); } else if (node.Name == "HostName") { HostName = node.InnerText; } else if (node.Name == "LastSeen") { DateTime.TryParse(node.InnerText, out LastSeen); } else if (node.Name == "SeenCounter") { int.TryParse(node.InnerText, out SeenCounter); } else if (node.Name == "ConCounter") { int.TryParse(node.InnerText, out OldConCounter); } else if (node.Name == "ReceivedBytes") { UInt64.TryParse(node.InnerText, out OldDownload); } else if (node.Name == "SentBytes") { UInt64.TryParse(node.InnerText, out OldUpload); } } return(HostName != null); }
public virtual bool Load(XmlNode entryNode) { foreach (XmlNode node in entryNode.ChildNodes) { if (node.Name == "Guid") { guid = node.InnerText; } else if (node.Name == "BinaryPath") { BinaryPath = node.InnerText; } else if (node.Name == "ServiceTag") { ServiceTag = node.InnerText; } else if (node.Name == "AppSID") { AppSID = node.InnerText; } else if (node.Name == "ProgID") { ProgID = new ProgramID(); ProgID.Load(node); } else if (node.Name == "Name") { Name = node.InnerText; } else if (node.Name == "Grouping") { Grouping = node.InnerText; } else if (node.Name == "Description") { Description = node.InnerText; } else if (node.Name == "Enabled") { bool.TryParse(node.InnerText, out Enabled); } else if (node.Name == "Action") { Enum.TryParse <Actions>(node.InnerText, out Action); } else if (node.Name == "Direction") { Enum.TryParse <Directions>(node.InnerText, out Direction); } else if (node.Name == "Profile") { int.TryParse(node.InnerText, out Profile); } else if (node.Name == "Protocol") { int.TryParse(node.InnerText, out Protocol); } else if (node.Name == "Interface") { int.TryParse(node.InnerText, out Interface); } else if (node.Name == "LocalPorts") { LocalPorts = node.InnerText; } else if (node.Name == "LocalAddresses") { LocalAddresses = node.InnerText; } else if (node.Name == "RemoteAddresses") { RemoteAddresses = node.InnerText; } else if (node.Name == "RemotePorts") { RemotePorts = node.InnerText; } else if (node.Name == "IcmpTypesAndCodes") { SetIcmpTypesAndCodes(node.InnerText); } else if (node.Name == "EdgeTraversal") { int.TryParse(node.InnerText, out EdgeTraversal); } } return(ProgID != null && guid != null); }
public bool Load(XmlNode entryNode) { foreach (XmlNode node in entryNode.ChildNodes) { if (node.Name == "ID") { ProgramID id = new ProgramID(); if (id.Load(node)) { // COMPAT: remove service tag ID = FirewallRuleEx.AdjustProgID(id); } } else if (node.Name == "Description") { Description = node.InnerText; } else if (node.Name == "ReceivedBytes") { UInt64.TryParse(node.InnerText, out OldDownload); } else if (node.Name == "SentBytes") { UInt64.TryParse(node.InnerText, out OldUpload); } else if (node.Name == "FwRules") { foreach (XmlNode childNode in node.ChildNodes) { FirewallRuleEx rule = new FirewallRuleEx(); rule.ProgID = ID; // todo: remove later, load loads this amyways if (rule.Load(childNode) && !Rules.ContainsKey(rule.guid)) { // COMPAT: update entry, old version did not save these data separatly //if (ID.Type != ProgramID.Types.Global && (rule.BinaryPath == null && rule.ServiceTag == null && rule.AppSID == null)) // rule.SetProgID(ID); Rules.Add(rule.guid, rule); } else { Priv10Logger.LogError("Failed to load Firewall RuleEx {0} in {1}", rule.Name != null ? rule.Name : "[un named]", this.Description); } } } else if (node.Name == "DnsLog") { foreach (XmlNode childNode in node.ChildNodes) { DnsEntry Entry = new DnsEntry(ID); if (Entry.Load(childNode) && !DnsLog.ContainsKey(Entry.HostName)) { DnsLog.Add(Entry.HostName, Entry); } else { Priv10Logger.LogError("Failed to load DnsLog Entry in {0}", this.Description); } } } else { AppLog.Debug("Unknown Program Value, '{0}':{1}", node.Name, node.InnerText); } } if (Description == null || Description.Substring(0, 2) == "@{") { Description = GetDescription(); } return(ID != null); }