コード例 #1
0
 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);
 }
コード例 #2
0
ファイル: Program.cs プロジェクト: safino9/priv10
 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);
 }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: safino9/priv10
        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);
        }