public static bool SetRoutingTable() { if (!Directory.Exists("/etc/iproute2")) { return(true); } var currentHosts = CommonArray.Merge(DefaultRoutingTables, Application.CurrentConfiguration.Network.RoutingTables); var runningHosts = Application.RunningConfiguration.Network.RoutingTables; if (currentHosts.Select(_ => _.ToString()).SequenceEqual(runningHosts.Select(_ => _.ToString())) == false) { if (File.Exists(routingTableFile)) { File.Copy(routingTableFile, routingTableFileBackup, true); } var lines = new string[currentHosts.Length]; for (var i = 0; i < currentHosts.Length; i++) { lines[i] = CommonString.Append(currentHosts[i].Id, " ", currentHosts[i].Alias); } File.WriteAllLines(routingTableFile, lines); } return(true); }
public static void Set() { var currentResolv = Application.CurrentConfiguration.Network.KnownDns; var runningResolv = Application.RunningConfiguration.Network.KnownDns; if (CommonString.AreEquals(currentResolv.ToString(), runningResolv.ToString()) == false) { if (File.Exists(etcResolv)) { File.Copy(etcResolv, etcResolvBackup, true); } var nameserverLines = new string[currentResolv.Nameserver.Length]; for (var i = 0; i < currentResolv.Nameserver.Length; i++) { nameserverLines[i] = CommonString.Append(nameserver, " ", currentResolv.Nameserver[i]); } File.WriteAllLines(etcResolv, nameserverLines); if (!string.IsNullOrEmpty(currentResolv.Search)) { var newLines = new string[] { CommonString.Append(search, " ", currentResolv.Search) }; File.AppendAllLines(etcResolv, newLines); } if (!string.IsNullOrEmpty(currentResolv.Domain)) { var newLines = new string[] { CommonString.Append(domain, " ", currentResolv.Domain) }; File.AppendAllLines(etcResolv, newLines); } } var currentHosts = CommonArray.Merge(DefaultHosts, Application.CurrentConfiguration.Network.KnownHosts); var runningHosts = Application.RunningConfiguration.Network.KnownHosts; if (currentHosts.Select(_ => _.ToString()).SequenceEqual(runningHosts.Select(_ => _.ToString())) == false) { if (File.Exists(etcHosts)) { File.Copy(etcHosts, etcHostsBackup, true); } var lines = new string[currentHosts.Length]; for (var i = 0; i < currentHosts.Length; i++) { lines[i] = CommonString.Append(currentHosts[i].IpAddr, " ", CommonString.Build(currentHosts[i].CommonNames, ' ')); } File.WriteAllLines(etcHosts, lines); } var currentNetworks = CommonArray.Merge(DefaultNetworks, Application.CurrentConfiguration.Network.KnownNetworks); var runningNetworks = Application.RunningConfiguration.Network.KnownNetworks; if (currentNetworks.Select(_ => _.ToString()).SequenceEqual(runningNetworks.Select(_ => _.ToString())) == false) { if (File.Exists(etcNetworks)) { File.Copy(etcNetworks, etcNetworksBackup, true); } var lines = new string[currentNetworks.Length]; for (var i = 0; i < currentNetworks.Length; i++) { lines[i] = CommonString.Append(currentNetworks[i].Label, " ", currentNetworks[i].NetAddr); } File.WriteAllLines(etcNetworks, lines); } }