示例#1
0
        public bool HasConfiguration()
        {
            _serviceModel = LoadModel();
            var netif = _serviceModel.Interfaces;

            return(netif.Any(_ => _.Status == NetworkInterfaceStatus.Up));
        }
示例#2
0
 public NetworkConfiguration()
 {
     _networkInterfaces     = GetAllNames();
     NetworkInterfaces      = GetAllNames();
     InterfacePhysical      = GetPhysicalInterfaces();
     InterfaceVirtual       = GetVirtualInterfaces();
     InterfaceBond          = GetBondInterfaces();
     InterfaceBridge        = GetBridgeInterfaces();
     InterfacePhysicalModel = GetPhysicalInterfacesModel();
     InterfaceVirtualModel  = GetVirtualInterfacesModel();
     InterfaceBondModel     = GetBondInterfacesModel();
     InterfaceBridgeModel   = GetBridgeInterfacesModel();
     Directory.CreateDirectory(Parameter.AntdCfgServices);
     if (!File.Exists(_cfgFile))
     {
         _serviceModel = new NetworkConfigurationModel();
     }
     else
     {
         try {
             var text = File.ReadAllText(_cfgFile);
             var obj  = JsonConvert.DeserializeObject <NetworkConfigurationModel>(text);
             _serviceModel = obj;
         }
         catch (Exception) {
             _serviceModel = new NetworkConfigurationModel();
         }
     }
 }
示例#3
0
        public void ApplyInterfaceSetting()
        {
            _serviceModel = LoadModel();
            var netifs = _serviceModel.Interfaces;

            foreach (var netif in netifs)
            {
                ApplyInterfaceSetting(netif);
            }
        }
示例#4
0
        public static void Save(NetworkConfigurationModel model)
        {
            var text = JsonConvert.SerializeObject(model, Formatting.Indented);

            if (File.Exists(CfgFile))
            {
                File.Copy(CfgFile, CfgFileBackup, true);
            }
            File.WriteAllText(CfgFile, text);
            ConsoleLogger.Log("[network] configuration saved");
        }
示例#5
0
        public void RemoveInterfaceSetting(string guid)
        {
            _serviceModel = LoadModel();
            var netif = _serviceModel.Interfaces;
            var model = netif.First(_ => _.Guid == guid);

            if (model == null)
            {
                return;
            }
            netif.Remove(model);
            _serviceModel.Interfaces = netif;
            Save(_serviceModel);
        }
示例#6
0
        public void AddInterfaceSetting(NetworkInterfaceConfigurationModel model)
        {
            _serviceModel = LoadModel();
            var netif = _serviceModel.Interfaces;
            var check = netif.Where(_ => _.Interface == model.Interface).ToList();

            if (check.Any())
            {
                check.ForEach(_ => RemoveInterfaceSetting(_.Guid));
            }
            netif.Add(model);
            _serviceModel.Interfaces = netif;
            Save(_serviceModel);
        }
示例#7
0
        public void ApplyDefaultInterfaceSetting()
        {
            _serviceModel = LoadModel();
            var interfaces = new List <string>();

            interfaces.AddRange(InterfacePhysical);
            interfaces.AddRange(InterfaceBridge);
            var launcher = new CommandLauncher();

            foreach (var netIf in interfaces)
            {
                launcher.Launch("ip4-set-mtu", new Dictionary <string, string> {
                    { "$net_if", netIf }, { "$mtu", _serviceModel.DefaultMtu }
                });
                launcher.Launch("ip4-set-txqueuelen", new Dictionary <string, string> {
                    { "$net_if", netIf }, { "$txqueuelen", _serviceModel.DefaultTxqueuelen }
                });
            }
        }
示例#8
0
        private IEnumerable <NetworkInterfaceConfigurationModel> GetBridgeInterfacesModel()
        {
            _serviceModel = LoadModel();
            var netifs = _serviceModel.Interfaces;
            var list   = new List <NetworkInterfaceConfigurationModel>();

            foreach (var pi in InterfaceBridge)
            {
                if (netifs.Any(_ => _.Interface == pi))
                {
                    list.Add(netifs.FirstOrDefault(_ => _.Interface == pi));
                }
                else
                {
                    list.Add(new NetworkInterfaceConfigurationModel {
                        Interface = pi
                    });
                }
            }
            return(list);
        }