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); }
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); }
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); }