Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }