Esempio n. 1
0
        public override void OnRecoveryLoad(XmlElement root)
        {
            XmlElement nodeDns = Utils.XmlGetFirstElementByTagName(root, "DnsSwitch");

            if (nodeDns != null)
            {
                foreach (XmlElement nodeEntry in nodeDns.ChildNodes)
                {
                    DnsSwitchEntry entry = new DnsSwitchEntry();
                    entry.ReadXML(nodeEntry);
                    m_listDnsSwitch.Add(entry);
                }
            }

            XmlElement nodeIpV6 = Utils.XmlGetFirstElementByTagName(root, "IpV6");

            if (nodeIpV6 != null)
            {
                foreach (XmlElement nodeEntry in nodeIpV6.ChildNodes)
                {
                    IpV6ModeEntry entry = new IpV6ModeEntry();
                    entry.ReadXML(nodeEntry);
                    m_listIpV6Mode.Add(entry);
                }
            }

            base.OnRecoveryLoad(root);
        }
Esempio n. 2
0
        public override bool OnIpV6Do()
        {
            if (Engine.Instance.Storage.GetLower("ipv6.mode") == "disable")
            {
                string[] interfaces = GetInterfaces();
                foreach (string i in interfaces)
                {
                    string getInfo = SystemShell.Shell("/usr/sbin/networksetup", new string[] { "-getinfo", SystemShell.EscapeInsideQuote(i) });

                    string mode    = Utils.RegExMatchOne(getInfo, "^IPv6: (.*?)$");
                    string address = Utils.RegExMatchOne(getInfo, "^IPv6 IP address: (.*?)$");

                    if ((mode == "") && (address != ""))
                    {
                        mode = "LinkLocal";
                    }

                    if (mode != "Off")
                    {
                        IpV6ModeEntry entry = new IpV6ModeEntry();
                        entry.Interface = i;
                        entry.Mode      = mode;
                        entry.Address   = address;
                        if (mode == "Manual")
                        {
                            entry.Router       = Utils.RegExMatchOne(getInfo, "^IPv6 IP Router: (.*?)$");
                            entry.PrefixLength = Utils.RegExMatchOne(getInfo, "^IPv6 Prefix Length: (.*?)$");
                        }
                        m_listIpV6Mode.Add(entry);

                        SystemShell.Shell("/usr/sbin/networksetup", new string[] { "-setv6off", SystemShell.EscapeInsideQuote(i) });

                        Engine.Instance.Logs.Log(LogType.Verbose, MessagesFormatter.Format(Messages.NetworkAdapterIpV6Disabled, i));
                    }
                }

                Recovery.Save();
            }

            base.OnIpV6Do();

            return(true);
        }
Esempio n. 3
0
        public override bool OnIPv6Block()
        {
            string result = Engine.Instance.Elevated.DoCommandSync("ipv6-block");

            if (result != "")
            {
                foreach (string resultItem in result.Split('\n'))
                {
                    string[] fields = resultItem.Split(';');
                    if (fields.Length != 6)
                    {
                        continue;
                    }
                    if (fields[0] == "SwitchIPv6")
                    {
                        string interfaceName = fields[1];

                        IpV6ModeEntry entry = new IpV6ModeEntry();
                        entry.Interface    = interfaceName;
                        entry.Mode         = fields[2];
                        entry.Address      = fields[3];
                        entry.Router       = fields[4];
                        entry.PrefixLength = fields[5];
                        m_listIpV6Mode.Add(entry);

                        Engine.Instance.Logs.Log(LogType.Verbose, LanguageManager.GetText("OsMacNetworkAdapterIPv6Disabled", interfaceName));
                    }
                }
            }

            Recovery.Save();

            base.OnIPv6Block();

            return(true);
        }